Skip to content

Commit 6f039f2

Browse files
committed
Add convenience union initializers for unions inside of unions
1 parent 5cb70da commit 6f039f2

File tree

13 files changed

+610
-210
lines changed

13 files changed

+610
-210
lines changed

Patches/DOM.patch

+47-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
diff --git a/Sources/DOM/Generated.swift b/Sources/DOM/Generated.swift
2-
index 0d66a02..708adef 100644
2+
index 1f45705..d5e36dd 100644
33
--- a/Sources/DOM/Generated.swift
44
+++ b/Sources/DOM/Generated.swift
5-
@@ -957,8 +957,15 @@ public class BeforeUnloadEvent: Event {
5+
@@ -1005,8 +1005,15 @@ public class BeforeUnloadEvent: Event {
66
super.init(unsafelyWrapping: jsObject)
77
}
8-
8+
99
+ @available(*, unavailable)
1010
+ override public var returnValue: Bool {
1111
+ get { !_returnValue.wrappedValue.isEmpty }
@@ -19,13 +19,55 @@ index 0d66a02..708adef 100644
1919
get { _returnValue.wrappedValue }
2020
set { _returnValue.wrappedValue = newValue }
2121
}
22-
@@ -6978,7 +6985,8 @@ public class HTMLFormControlsCollection: HTMLCollection {
22+
@@ -7069,7 +7076,8 @@ public class HTMLFormControlsCollection: HTMLCollection {
2323
jsObject[key].fromJSValue()
2424
}
25-
25+
2626
- @inlinable override public func namedItem(name: String) -> Element_or_RadioNodeList? {
2727
+ // `override` removed since the superclass returns a more constrained type `Element`
2828
+ @inlinable func namedItem(name: String) -> Element_or_RadioNodeList? {
2929
let this = jsObject
3030
return this[Strings.namedItem].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue()!
3131
}
32+
@@ -20376,19 +20384,9 @@ public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
33+
self = val
34+
}
35+
36+
- init(_ htmlOrSVGImageElement: HTMLOrSVGImageElement) {
37+
- let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement)
38+
- self = val
39+
- }
40+
-
41+
init(_ htmlImageElement: HTMLImageElement) {
42+
- let val: HTMLOrSVGImageElement = .htmlImageElement(htmlImageElement)
43+
- self = .init(val)
44+
- }
45+
-
46+
- init(_ svgImageElement: SVGImageElement) {
47+
- let val: HTMLOrSVGImageElement = .svgImageElement(svgImageElement)
48+
- self = .init(val)
49+
+ let val: CanvasImageSource = .htmlOrSVGImageElement(htmlImageElement)
50+
+ self = val
51+
}
52+
53+
init(_ htmlVideoElement: HTMLVideoElement) {
54+
@@ -21636,18 +21634,8 @@ public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
55+
self = .init(val)
56+
}
57+
58+
- init(_ htmlOrSVGImageElement: HTMLOrSVGImageElement) {
59+
- let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement)
60+
- self = .init(val)
61+
- }
62+
-
63+
init(_ htmlImageElement: HTMLImageElement) {
64+
- let val: HTMLOrSVGImageElement = .htmlImageElement(htmlImageElement)
65+
- self = .init(val)
66+
- }
67+
-
68+
- init(_ svgImageElement: SVGImageElement) {
69+
- let val: HTMLOrSVGImageElement = .svgImageElement(svgImageElement)
70+
+ let val: CanvasImageSource = .htmlOrSVGImageElement(htmlImageElement)
71+
self = .init(val)
72+
}
73+

Sources/CSSOM/Generated.swift

+70-20
Original file line numberDiff line numberDiff line change
@@ -2356,11 +2356,33 @@ public enum CSSColorRGBComp: JSValueCompatible, Any_CSSColorRGBComp {
23562356
case cssNumberish(CSSNumberish)
23572357

23582358
init(_ cssKeywordish: CSSKeywordish) {
2359-
self = .cssKeywordish(cssKeywordish)
2359+
let val: CSSColorRGBComp = .cssKeywordish(cssKeywordish)
2360+
self = val
2361+
}
2362+
2363+
init(_ cssKeywordValue: CSSKeywordValue) {
2364+
let val: CSSKeywordish = .cssKeywordValue(cssKeywordValue)
2365+
self = .init(val)
2366+
}
2367+
2368+
init(_ string: String) {
2369+
let val: CSSKeywordish = .string(string)
2370+
self = .init(val)
23602371
}
23612372

23622373
init(_ cssNumberish: CSSNumberish) {
2363-
self = .cssNumberish(cssNumberish)
2374+
let val: CSSColorRGBComp = .cssNumberish(cssNumberish)
2375+
self = val
2376+
}
2377+
2378+
init(_ cssNumericValue: CSSNumericValue) {
2379+
let val: CSSNumberish = .cssNumericValue(cssNumericValue)
2380+
self = .init(val)
2381+
}
2382+
2383+
init(_ double: Double) {
2384+
let val: CSSNumberish = .double(double)
2385+
self = .init(val)
23642386
}
23652387

23662388
public var cssKeywordish: CSSKeywordish? {
@@ -2406,11 +2428,13 @@ public enum CSSKeywordish: JSValueCompatible, Any_CSSKeywordish {
24062428
case string(String)
24072429

24082430
init(_ cssKeywordValue: CSSKeywordValue) {
2409-
self = .cssKeywordValue(cssKeywordValue)
2431+
let val: CSSKeywordish = .cssKeywordValue(cssKeywordValue)
2432+
self = val
24102433
}
24112434

24122435
init(_ string: String) {
2413-
self = .string(string)
2436+
let val: CSSKeywordish = .string(string)
2437+
self = val
24142438
}
24152439

24162440
public var cssKeywordValue: CSSKeywordValue? {
@@ -2456,11 +2480,13 @@ public enum CSSNumberish: JSValueCompatible, Any_CSSNumberish {
24562480
case double(Double)
24572481

24582482
init(_ cssNumericValue: CSSNumericValue) {
2459-
self = .cssNumericValue(cssNumericValue)
2483+
let val: CSSNumberish = .cssNumericValue(cssNumericValue)
2484+
self = val
24602485
}
24612486

24622487
init(_ double: Double) {
2463-
self = .double(double)
2488+
let val: CSSNumberish = .double(double)
2489+
self = val
24642490
}
24652491

24662492
public var cssNumericValue: CSSNumericValue? {
@@ -2506,11 +2532,23 @@ public enum CSSPerspectiveValue: JSValueCompatible, Any_CSSPerspectiveValue {
25062532
case cssNumericValue(CSSNumericValue)
25072533

25082534
init(_ cssKeywordish: CSSKeywordish) {
2509-
self = .cssKeywordish(cssKeywordish)
2535+
let val: CSSPerspectiveValue = .cssKeywordish(cssKeywordish)
2536+
self = val
2537+
}
2538+
2539+
init(_ cssKeywordValue: CSSKeywordValue) {
2540+
let val: CSSKeywordish = .cssKeywordValue(cssKeywordValue)
2541+
self = .init(val)
2542+
}
2543+
2544+
init(_ string: String) {
2545+
let val: CSSKeywordish = .string(string)
2546+
self = .init(val)
25102547
}
25112548

25122549
init(_ cssNumericValue: CSSNumericValue) {
2513-
self = .cssNumericValue(cssNumericValue)
2550+
let val: CSSPerspectiveValue = .cssNumericValue(cssNumericValue)
2551+
self = val
25142552
}
25152553

25162554
public var cssKeywordish: CSSKeywordish? {
@@ -2556,11 +2594,13 @@ public enum CSSStyleValue_or_String: JSValueCompatible, Any_CSSStyleValue_or_Str
25562594
case string(String)
25572595

25582596
init(_ cssStyleValue: CSSStyleValue) {
2559-
self = .cssStyleValue(cssStyleValue)
2597+
let val: CSSStyleValue_or_String = .cssStyleValue(cssStyleValue)
2598+
self = val
25602599
}
25612600

25622601
init(_ string: String) {
2563-
self = .string(string)
2602+
let val: CSSStyleValue_or_String = .string(string)
2603+
self = val
25642604
}
25652605

25662606
public var cssStyleValue: CSSStyleValue? {
@@ -2606,11 +2646,13 @@ public enum CSSUnparsedSegment: JSValueCompatible, Any_CSSUnparsedSegment {
26062646
case string(String)
26072647

26082648
init(_ cssVariableReferenceValue: CSSVariableReferenceValue) {
2609-
self = .cssVariableReferenceValue(cssVariableReferenceValue)
2649+
let val: CSSUnparsedSegment = .cssVariableReferenceValue(cssVariableReferenceValue)
2650+
self = val
26102651
}
26112652

26122653
init(_ string: String) {
2613-
self = .string(string)
2654+
let val: CSSUnparsedSegment = .string(string)
2655+
self = val
26142656
}
26152657

26162658
public var cssVariableReferenceValue: CSSVariableReferenceValue? {
@@ -2656,11 +2698,13 @@ public enum Element_or_ProcessingInstruction: JSValueCompatible, Any_Element_or_
26562698
case processingInstruction(ProcessingInstruction)
26572699

26582700
init(_ element: Element) {
2659-
self = .element(element)
2701+
let val: Element_or_ProcessingInstruction = .element(element)
2702+
self = val
26602703
}
26612704

26622705
init(_ processingInstruction: ProcessingInstruction) {
2663-
self = .processingInstruction(processingInstruction)
2706+
let val: Element_or_ProcessingInstruction = .processingInstruction(processingInstruction)
2707+
self = val
26642708
}
26652709

26662710
public var element: Element? {
@@ -2710,19 +2754,23 @@ public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
27102754
case text(Text)
27112755

27122756
init(_ cssPseudoElement: CSSPseudoElement) {
2713-
self = .cssPseudoElement(cssPseudoElement)
2757+
let val: GeometryNode = .cssPseudoElement(cssPseudoElement)
2758+
self = val
27142759
}
27152760

27162761
init(_ document: Document) {
2717-
self = .document(document)
2762+
let val: GeometryNode = .document(document)
2763+
self = val
27182764
}
27192765

27202766
init(_ element: Element) {
2721-
self = .element(element)
2767+
let val: GeometryNode = .element(element)
2768+
self = val
27222769
}
27232770

27242771
init(_ text: Text) {
2725-
self = .text(text)
2772+
let val: GeometryNode = .text(text)
2773+
self = val
27262774
}
27272775

27282776
public var cssPseudoElement: CSSPseudoElement? {
@@ -2792,11 +2840,13 @@ public enum MediaList_or_String: JSValueCompatible, Any_MediaList_or_String {
27922840
case string(String)
27932841

27942842
init(_ mediaList: MediaList) {
2795-
self = .mediaList(mediaList)
2843+
let val: MediaList_or_String = .mediaList(mediaList)
2844+
self = val
27962845
}
27972846

27982847
init(_ string: String) {
2799-
self = .string(string)
2848+
let val: MediaList_or_String = .string(string)
2849+
self = val
28002850
}
28012851

28022852
public var mediaList: MediaList? {

0 commit comments

Comments
 (0)