@@ -27,8 +27,8 @@ extension Int: O, O2 {
27
27
28
28
extension String : P {
29
29
// CHECK-LABEL: @"$sSS18opaque_result_typeE3pooQryFQOMQ" = {{.*}} constant <{ {{.*}} }> <{
30
- // -- header: opaque type context (0x4), generic (0x80), unique (0x40)
31
- // CHECK-SAME: <i32 0xc4 >,
30
+ // -- header: opaque type context (0x4), generic (0x80), unique (0x40), two entries (0x2_0000)
31
+ // CHECK-SAME: <i32 0x2_00c4 >,
32
32
// -- parent context: module, or anon context for function
33
33
// CHECK-SAME: @"$s18opaque_result_typeMXM"
34
34
// -- mangled underlying type
@@ -43,8 +43,8 @@ extension String: P {
43
43
44
44
public class C : P , Q {
45
45
// CHECK-LABEL: @"$s18opaque_result_type1CC3pooQryFQOMQ" = {{.*}} constant <{ {{.*}} }> <{
46
- // -- header: opaque type context (0x4), generic (0x80), unique (0x40)
47
- // CHECK-SAME: <i32 0xc4 >
46
+ // -- header: opaque type context (0x4), generic (0x80), unique (0x40), two entries (0x2_0000)
47
+ // CHECK-SAME: <i32 0x2_00c4 >
48
48
// -- parent context: module, or anon context for function
49
49
// CHECK-SAME: @"$s18opaque_result_typeMXM"
50
50
// -- mangled underlying type
@@ -57,8 +57,8 @@ public class C: P, Q {
57
57
}
58
58
59
59
// CHECK-LABEL: @"$s18opaque_result_type1CC3qooQryFQOMQ" = {{.*}} constant <{ {{.*}} }> <{
60
- // -- header: opaque type context (0x4), generic (0x80), unique (0x40)
61
- // CHECK-SAME: <i32 0xc4 >
60
+ // -- header: opaque type context (0x4), generic (0x80), unique (0x40), three entries (0x3_0000)
61
+ // CHECK-SAME: <i32 0x3_00c4 >
62
62
// -- parent context: module, or anon context for function
63
63
// CHECK-SAME: @"$s18opaque_result_typeMXM"
64
64
// -- mangled underlying type
@@ -74,8 +74,8 @@ public class C: P, Q {
74
74
}
75
75
76
76
// CHECK-LABEL: @"$s18opaque_result_type3foo1xQrSS_tFQOMQ" = {{.*}} constant <{ {{.*}} }> <{
77
- // -- header: opaque type context (0x4), generic (0x80), unique (0x40)
78
- // CHECK-SAME: <i32 0xc4 >
77
+ // -- header: opaque type context (0x4), generic (0x80), unique (0x40), two entries (0x2_0000)
78
+ // CHECK-SAME: <i32 0x2_00c4 >
79
79
// -- parent context: module, or anon context for function
80
80
// CHECK-SAME: @"$s18opaque_result_typeMXM"
81
81
// -- mangled underlying type
@@ -88,8 +88,8 @@ func foo(x: String) -> __opaque P {
88
88
}
89
89
90
90
// CHECK-LABEL: @"$s18opaque_result_type3bar1yQrAA1CC_tFQOMQ" = {{.*}} constant <{ {{.*}} }> <{
91
- // -- header: opaque type context (0x4), generic (0x80), unique (0x40)
92
- // CHECK-SAME: <i32 0xc4 >
91
+ // -- header: opaque type context (0x4), generic (0x80), unique (0x40), two entries (0x2_0000)
92
+ // CHECK-SAME: <i32 0x2_00c4 >
93
93
// -- parent context: module, or anon context for function
94
94
// CHECK-SAME: @"$s18opaque_result_typeMXM"
95
95
// -- mangled underlying type
@@ -102,15 +102,15 @@ func bar(y: C) -> __opaque Q {
102
102
}
103
103
104
104
// CHECK-LABEL: @"$s18opaque_result_type3baz1zQrx_tAA1PRzAA1QRzlFQOMQ" = {{.*}} constant <{ {{.*}} }> <{
105
- // -- header: opaque type context (0x4), generic (0x80), unique (0x40), underlying type ordinal 1 (0x1_0000 )
106
- // CHECK-SAME: <i32 0x1_00c4 >
105
+ // -- header: opaque type context (0x4), generic (0x80), unique (0x40), three entries (0x3_0000 )
106
+ // CHECK-SAME: <i32 0x3_00c4 >
107
107
// -- parent context: anon context for function
108
108
// CHECK-SAME: @"$s18opaque_result_type3baz1zQrx_tAA1PRzAA1QRzlFMXX"
109
109
// -- mangled underlying type
110
110
// CHECK-SAME: @"symbolic x"
111
- // -- conformance to P (todo)
111
+ // -- conformance to P
112
112
// CHECK-SAME: @"get_witness_table 18opaque_result_type1PRzAA1QRzlxAaB
113
- // -- conformance to Q (todo)
113
+ // -- conformance to Q
114
114
// CHECK-SAME: @"get_witness_table 18opaque_result_type1PRzAA1QRzlxAaC
115
115
// CHECK-SAME: }>
116
116
func baz< T: P & Q > ( z: T ) -> __opaque P & Q {
0 commit comments