Skip to content

Commit f62cc03

Browse files
committed
[Test] Added opaque switch tuple test case.
1 parent a995c56 commit f62cc03

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

test/SILOptimizer/opaque_values_Onone.swift

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,28 @@
88
func generic_identity<T>(t: T) -> T {
99
return t
1010
}
11+
12+
13+
struct Outer<T : Equatable> {
14+
enum Inner {
15+
case outside
16+
case inside(T)
17+
}
18+
}
19+
20+
extension Outer.Inner {
21+
// CHECK-LABEL: sil hidden @outer_inner_compare
22+
// CHECK: switch_enum_addr {{%[^,]+}} : $*Outer<T>.Inner, case #Outer.Inner.inside!enumelt: {{bb[0-9]+}}, case #Outer.Inner.outside!enumelt: {{bb[0-9]+}}
23+
// CHECK-LABEL: } // end sil function 'outer_inner_compare'
24+
@_silgen_name("outer_inner_compare")
25+
static func compare(_ lhs: Outer.Inner, _ rhs: Outer.Inner) -> Bool {
26+
switch (lhs, rhs) {
27+
case (.inside(let l), .inside(let r)):
28+
return l == r
29+
case (.outside, .outside):
30+
return true
31+
default:
32+
return false
33+
}
34+
}
35+
}

0 commit comments

Comments
 (0)