Skip to content

Commit 69b71f6

Browse files
technicatedToma91
authored andcommitted
Added SIL/Serialization test
The test involves tuples in a generic environment (struct)
1 parent 91f0ca2 commit 69b71f6

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

test/SIL/Serialization/keypath.sil

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ struct T {
5656
let w: (Int, C)
5757
}
5858

59+
struct GenT<A, B> {
60+
var x: (A, B)
61+
let y: (a: A, b: B)
62+
let z: (e0: External<A>, e1: External<B>)
63+
}
64+
5965
// CHECK-LABEL: sil shared [serialized] [ossa] @stored_properties
6066
sil shared [serialized] [ossa] @stored_properties : $@convention(thin) () -> () {
6167
entry:
@@ -97,14 +103,29 @@ entry:
97103
return undef : $()
98104
}
99105

100-
// CHECK-LABEL: sil shared [serialized] @tuple_generic
101-
sil shared [serialized] @tuple_generic : $@convention(thin) <T, U> () -> () {
106+
// CHECK-LABEL: sil shared [serialized] [ossa] @tuple_generic
107+
sil shared [serialized] [ossa] @tuple_generic : $@convention(thin) <T, U> () -> () {
102108
entry:
103109
// CHECK: keypath $WritableKeyPath<(T, U), T>, <τ_0_0, τ_0_1> (root $(τ_0_0, τ_0_1); tuple_element #0 : $τ_0_0) <T, U>
104110
%a = keypath $WritableKeyPath<(T, U), T>, <τ_0_0, τ_0_1> (root $(τ_0_0, τ_0_1); tuple_element #0 : $τ_0_0) <T, U>
105111
// CHECK: keypath $WritableKeyPath<(T, U), U>, <τ_0_0, τ_0_1> (root $(τ_0_0, τ_0_1); tuple_element #1 : $τ_0_1) <T, U>
106112
%b = keypath $WritableKeyPath<(T, U), U>, <τ_0_0, τ_0_1> (root $(τ_0_0, τ_0_1); tuple_element #1 : $τ_0_1) <T, U>
107113

114+
// CHECK: keypath $WritableKeyPath<GenT<T, U>, T>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.x : $(τ_0_0, τ_0_1); tuple_element #0 : $τ_0_0) <T, U>
115+
%c = keypath $WritableKeyPath<GenT<T, U>, T>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.x : $(τ_0_0, τ_0_1); tuple_element #0 : $τ_0_0) <T, U>
116+
// CHECK: keypath $WritableKeyPath<GenT<T, U>, U>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.x : $(τ_0_0, τ_0_1); tuple_element #1 : $τ_0_1) <T, U>
117+
%d = keypath $WritableKeyPath<GenT<T, U>, U>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.x : $(τ_0_0, τ_0_1); tuple_element #1 : $τ_0_1) <T, U>
118+
119+
// CHECK: keypath $KeyPath<GenT<T, U>, T>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.y : $(a: τ_0_0, b: τ_0_1); tuple_element #0 : $τ_0_0) <T, U>
120+
%e = keypath $KeyPath<GenT<T, U>, T>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.y : $(a: τ_0_0, b: τ_0_1); tuple_element #0 : $τ_0_0) <T, U>
121+
// CHECK: keypath $KeyPath<GenT<T, U>, U>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.y : $(a: τ_0_0, b: τ_0_1); tuple_element #1 : $τ_0_1) <T, U>
122+
%f = keypath $KeyPath<GenT<T, U>, U>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.y : $(a: τ_0_0, b: τ_0_1); tuple_element #1 : $τ_0_1) <T, U>
123+
124+
// CHECK: keypath $KeyPath<GenT<T, U>, T>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.z : $(e0: External<τ_0_0>, e1: External<τ_0_1>); tuple_element #0 : $External<τ_0_0>; stored_property #External.ro : $τ_0_0) <T, U>
125+
%g = keypath $KeyPath<GenT<T, U>, T>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.z : $(e0: External<τ_0_0>, e1: External<τ_0_1>); tuple_element #0 : $External<τ_0_0>; stored_property #External.ro : $τ_0_0) <T, U>
126+
// CHECK: keypath $KeyPath<GenT<T, U>, U>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.z : $(e0: External<τ_0_0>, e1: External<τ_0_1>); tuple_element #1 : $External<τ_0_1>; stored_property #External.ro : $τ_0_1) <T, U>
127+
%h = keypath $KeyPath<GenT<T, U>, U>, <τ_0_0, τ_0_1> (root $GenT<τ_0_0, τ_0_1>; stored_property #GenT.z : $(e0: External<τ_0_0>, e1: External<τ_0_1>); tuple_element #1 : $External<τ_0_1>; stored_property #External.ro : $τ_0_1) <T, U>
128+
108129
return undef : $()
109130
}
110131

0 commit comments

Comments
 (0)