Skip to content

Commit dc3e43b

Browse files
committed
[tests] Update generic where clauses to be trailing in SILGen tests
1 parent 7bbb5fa commit dc3e43b

7 files changed

+94
-94
lines changed

test/SILGen/enum_generic_raw_value.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ enum E<T>: Int {
66
}
77

88
// CHECK-LABEL: sil hidden @$S22enum_generic_raw_value1FO
9-
enum F<T: ExpressibleByIntegerLiteral where T: Equatable>: T {
9+
enum F<T: ExpressibleByIntegerLiteral>: T where T: Equatable {
1010
case A = 1
1111
}

test/SILGen/generic_signatures.swift

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,36 +14,36 @@ class C {}
1414

1515
func a<T>(x: T) {}
1616
func b<T: P>(x: G<T>, y: T.Assoc) {}
17-
func c<T where T: P>(x: T, y: T.Assoc) {}
17+
func c<T>(x: T, y: T.Assoc) where T: P {}
1818
func d<T: P, U: P & Q>(x: T, y: U) {}
19-
func e<T, U where T: P, U: P, U: Q>(x: T, y: U) {}
19+
func e<T, U>(x: T, y: U) where T: P, U: P, U: Q {}
2020
// FIXME: Same-type constraints expose a typechecker bug.
2121
// <rdar://problem/15730168>
22-
func f<T: Q where T.Assoc1 == T.Assoc2>(x: T) {}
23-
func g<T where T: Q, T.Assoc1 == T.Assoc2>(x: T) {}
24-
func h<T: P, U where T.Assoc == U>(x: T) {}
25-
func i<T: P where T.Assoc: Q, T.Assoc.Assoc1 == T.Assoc.Assoc2>(x: T) {}
22+
func f<T: Q>(x: T) where T.Assoc1 == T.Assoc2 {}
23+
func g<T>(x: T) where T: Q, T.Assoc1 == T.Assoc2 {}
24+
func h<T: P, U>(x: T) where T.Assoc == U {}
25+
func i<T: P>(x: T) where T.Assoc: Q, T.Assoc.Assoc1 == T.Assoc.Assoc2 {}
2626
func j<T: C>(_: T) {}
27-
func k<T where T: C>(_: T) {}
28-
func l<T: C where T: P>(_: T) {}
29-
func m<T: P where T.Assoc: C>(_: T) {}
27+
func k<T>(_: T) where T: C {}
28+
func l<T: C>(_: T) where T: P {}
29+
func m<T: P>(_: T) where T.Assoc: C {}
3030

3131
struct Foo<V> {
3232
func z() {}
3333

3434
func a<T>(x: T) {}
3535
func b<T: P>(x: G<T>, y: T.Assoc) {}
36-
func c<T where T: P>(x: T, y: T.Assoc) {}
36+
func c<T>(x: T, y: T.Assoc) where T: P {}
3737
func d<T: P, U: P & Q>(x: T, y: U) {}
38-
func e<T, U where T: P, U: P, U: Q>(x: T, y: U) {}
39-
func f<T: Q where T.Assoc1 == T.Assoc2>(x: T) {}
40-
func g<T where T: Q, T.Assoc1 == T.Assoc2>(x: T) {}
41-
func h<T: P, U where T.Assoc == U>(x: T) {}
42-
func i<T: P where T.Assoc: Q, T.Assoc.Assoc1 == T.Assoc.Assoc2>(x: T) {}
38+
func e<T, U>(x: T, y: U) where T: P, U: P, U: Q {}
39+
func f<T: Q>(x: T) where T.Assoc1 == T.Assoc2 {}
40+
func g<T>(x: T) where T: Q, T.Assoc1 == T.Assoc2 {}
41+
func h<T: P, U>(x: T) where T.Assoc == U {}
42+
func i<T: P>(x: T) where T.Assoc: Q, T.Assoc.Assoc1 == T.Assoc.Assoc2 {}
4343
func j<T: C>(_: T) {}
44-
func k<T where T: C>(_: T) {}
45-
func l<T: C where T: P>(_: T) {}
46-
func m<T: P where T.Assoc: C>(_: T) {}
44+
func k<T>(_: T) where T: C {}
45+
func l<T: C>(_: T) where T: P {}
46+
func m<T: P>(_: T) where T.Assoc: C {}
4747
}
4848

4949
// Test that we handle interface type lowering when accessing a dependent

test/SILGen/interface_type_mangling.swift

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -23,164 +23,164 @@ class Base: Q, A {
2323

2424
// CHECK-LABEL: interface_type_mangling.f1
2525
// CHECK: [[F_SIGNATURE:<A where A: interface_type_mangling.PP, A: interface_type_mangling.PQ>\(A\) -> \(\)]]
26-
func f1<T where T: PP, T: PQ>(_ x: T) {}
26+
func f1<T>(_ x: T) where T: PP, T: PQ {}
2727
// CHECK: interface_type_mangling.f2[[F_SIGNATURE]]
28-
func f2<T where T: PQ, T: PP>(_ x: T) {}
28+
func f2<T>(_ x: T) where T: PQ, T: PP {}
2929
// CHECK: interface_type_mangling.f3[[F_SIGNATURE]]
30-
func f3<T where T: PQ, T: PP, T: P>(_ x: T) {}
30+
func f3<T>(_ x: T) where T: PQ, T: PP, T: P {}
3131

3232
// CHECK-LABEL: interface_type_mangling.g1
3333
// CHECK: [[G_SIGNATURE:<A, B where A: interface_type_mangling.PP, B: interface_type_mangling.PQ>\(_: B, y: A\) -> \(\)]]
34-
func g1<U, T where T: PQ, U: PP>(_ x: T, y: U) {}
34+
func g1<U, T>(_ x: T, y: U) where T: PQ, U: PP {}
3535
// CHECK: interface_type_mangling.g2[[G_SIGNATURE]]
36-
func g2<U, T where T: PQ, T.Assoc1: A, U: PP>(_ x: T, y: U) {}
36+
func g2<U, T>(_ x: T, y: U) where T: PQ, T.Assoc1: A, U: PP {}
3737
// CHECK: interface_type_mangling.g3[[G_SIGNATURE]]
38-
func g3<U, T where U: PP, T: PQ, T.Assoc1: A>(_ x: T, y: U) {}
38+
func g3<U, T>(_ x: T, y: U) where U: PP, T: PQ, T.Assoc1: A {}
3939

4040
// CHECK-LABEL: interface_type_mangling.h1
4141
// CHECK: [[H_SIGNATURE:<A where A: interface_type_mangling.Base, A: interface_type_mangling.P>\(A\) -> \(\)]]
42-
func h1<T where T: Base, T: P>(_ x: T) {}
42+
func h1<T>(_ x: T) where T: Base, T: P {}
4343
// CHECK: interface_type_mangling.h2[[H_SIGNATURE]]
44-
func h2<T where T: P, T: Base>(_ x: T) {}
44+
func h2<T>(_ x: T) where T: P, T: Base {}
4545
// CHECK: interface_type_mangling.h3[[H_SIGNATURE]]
46-
func h3<T where T: P, T: Base, T: AnyObject>(_ x: T) {}
46+
func h3<T>(_ x: T) where T: P, T: Base, T: AnyObject {}
4747
// CHECK: interface_type_mangling.h4[[H_SIGNATURE]]
48-
func h4<T where T: P, T: Base, T: Q>(_ x: T) {}
48+
func h4<T>(_ x: T) where T: P, T: Base, T: Q {}
4949
// CHECK: interface_type_mangling.h5[[H_SIGNATURE]]
50-
func h5<T where T: P, T: Base, T: Q /* TODO: same type constraints , T.Assoc0 == Base*/>(_ x: T) {}
50+
func h5<T>(_ x: T) where T: P, T: Base, T: Q /* TODO: same type constraints , T.Assoc0 == Base*/ {}
5151

5252
// CHECK-LABEL: interface_type_mangling.i1
5353
// CHECK: [[I_SIGNATURE:<A where A: interface_type_mangling.P, A: interface_type_mangling.Q, A.Assoc0: interface_type_mangling.Q, A.Assoc1: interface_type_mangling.P>\(A\) -> \(\)]]
54-
func i1<T where T: P, T: Q, T.Assoc1: P, T.Assoc0: Q>(_ x: T) {}
54+
func i1<T>(_ x: T) where T: P, T: Q, T.Assoc1: P, T.Assoc0: Q {}
5555
// CHECK: interface_type_mangling.i2[[I_SIGNATURE]]
56-
func i2<T where T: P, T: Q, T.Assoc0: Q, T.Assoc1: P>(_ x: T) {}
56+
func i2<T>(_ x: T) where T: P, T: Q, T.Assoc0: Q, T.Assoc1: P {}
5757

5858
// CHECK-LABEL: interface_type_mangling.j01
5959
// CHECK: [[J_SIGNATURE:<A where A: interface_type_mangling.P, A: interface_type_mangling.Q, A.Assoc0 == A.Assoc1, A.Assoc1 == A.Assoc2>\(A\) -> \(\)]]
60-
func j01<T where T: P, T: Q, T.Assoc0 == T.Assoc1, T.Assoc1 == T.Assoc2>(_ x: T) {}
60+
func j01<T>(_ x: T) where T: P, T: Q, T.Assoc0 == T.Assoc1, T.Assoc1 == T.Assoc2 {}
6161
// CHECK: interface_type_mangling.j02[[J_SIGNATURE]]
62-
func j02<T where T: P, T: Q, T.Assoc0 == T.Assoc2, T.Assoc1 == T.Assoc2>(_ x: T) {}
62+
func j02<T>(_ x: T) where T: P, T: Q, T.Assoc0 == T.Assoc2, T.Assoc1 == T.Assoc2 {}
6363
// CHECK: interface_type_mangling.j03[[J_SIGNATURE]]
64-
func j03<T where T: P, T: Q, T.Assoc0 == T.Assoc2, T.Assoc1 == T.Assoc0>(_ x: T) {}
64+
func j03<T>(_ x: T) where T: P, T: Q, T.Assoc0 == T.Assoc2, T.Assoc1 == T.Assoc0 {}
6565
// CHECK: interface_type_mangling.j04[[J_SIGNATURE]]
66-
func j04<T where T: P, T: Q, T.Assoc1 == T.Assoc0, T.Assoc1 == T.Assoc2>(_ x: T) {}
66+
func j04<T>(_ x: T) where T: P, T: Q, T.Assoc1 == T.Assoc0, T.Assoc1 == T.Assoc2 {}
6767
// CHECK: interface_type_mangling.j05[[J_SIGNATURE]]
68-
func j05<T where T: P, T: Q, T.Assoc2 == T.Assoc0, T.Assoc1 == T.Assoc2>(_ x: T) {}
68+
func j05<T>(_ x: T) where T: P, T: Q, T.Assoc2 == T.Assoc0, T.Assoc1 == T.Assoc2 {}
6969
// CHECK: interface_type_mangling.j06[[J_SIGNATURE]]
70-
func j06<T where T: P, T: Q, T.Assoc2 == T.Assoc0, T.Assoc1 == T.Assoc0>(_ x: T) {}
70+
func j06<T>(_ x: T) where T: P, T: Q, T.Assoc2 == T.Assoc0, T.Assoc1 == T.Assoc0 {}
7171
// CHECK: interface_type_mangling.j07[[J_SIGNATURE]]
72-
func j07<T where T: P, T: Q, T.Assoc1 == T.Assoc0, T.Assoc2 == T.Assoc1>(_ x: T) {}
72+
func j07<T>(_ x: T) where T: P, T: Q, T.Assoc1 == T.Assoc0, T.Assoc2 == T.Assoc1 {}
7373
// CHECK: interface_type_mangling.j08[[J_SIGNATURE]]
74-
func j08<T where T: P, T: Q, T.Assoc2 == T.Assoc0, T.Assoc2 == T.Assoc1>(_ x: T) {}
74+
func j08<T>(_ x: T) where T: P, T: Q, T.Assoc2 == T.Assoc0, T.Assoc2 == T.Assoc1 {}
7575
// CHECK: interface_type_mangling.j09[[J_SIGNATURE]]
76-
func j09<T where T: P, T: Q, T.Assoc2 == T.Assoc0, T.Assoc0 == T.Assoc1>(_ x: T) {}
76+
func j09<T>(_ x: T) where T: P, T: Q, T.Assoc2 == T.Assoc0, T.Assoc0 == T.Assoc1 {}
7777
// CHECK: interface_type_mangling.j10[[J_SIGNATURE]]
78-
func j10<T where T: P, T: Q, T.Assoc1 == T.Assoc2, T.Assoc0 == T.Assoc1>(_ x: T) {}
78+
func j10<T>(_ x: T) where T: P, T: Q, T.Assoc1 == T.Assoc2, T.Assoc0 == T.Assoc1 {}
7979
// CHECK: interface_type_mangling.j11[[J_SIGNATURE]]
80-
func j11<T where T: P, T: Q, T.Assoc1 == T.Assoc2, T.Assoc0 == T.Assoc2>(_ x: T) {}
80+
func j11<T>(_ x: T) where T: P, T: Q, T.Assoc1 == T.Assoc2, T.Assoc0 == T.Assoc2 {}
8181
// CHECK: interface_type_mangling.j12[[J_SIGNATURE]]
82-
func j12<T where T: P, T: Q, T.Assoc1 == T.Assoc0, T.Assoc0 == T.Assoc2>(_ x: T) {}
82+
func j12<T>(_ x: T) where T: P, T: Q, T.Assoc1 == T.Assoc0, T.Assoc0 == T.Assoc2 {}
8383
// CHECK: interface_type_mangling.j13[[J_SIGNATURE]]
84-
func j13<T where T: P, T: Q, T.Assoc1 == T.Assoc2, T.Assoc1 == T.Assoc0>(_ x: T) {}
84+
func j13<T>(_ x: T) where T: P, T: Q, T.Assoc1 == T.Assoc2, T.Assoc1 == T.Assoc0 {}
8585
// CHECK: interface_type_mangling.j14[[J_SIGNATURE]]
86-
func j14<T where T: P, T: Q, T.Assoc1 == T.Assoc2, T.Assoc2 == T.Assoc0>(_ x: T) {}
86+
func j14<T>(_ x: T) where T: P, T: Q, T.Assoc1 == T.Assoc2, T.Assoc2 == T.Assoc0 {}
8787
// CHECK: interface_type_mangling.j15[[J_SIGNATURE]]
88-
func j15<T where T: P, T: Q, T.Assoc1 == T.Assoc0, T.Assoc2 == T.Assoc0>(_ x: T) {}
88+
func j15<T>(_ x: T) where T: P, T: Q, T.Assoc1 == T.Assoc0, T.Assoc2 == T.Assoc0 {}
8989
// CHECK: interface_type_mangling.j16[[J_SIGNATURE]]
90-
func j16<T where T: P, T: Q, T.Assoc2 == T.Assoc1, T.Assoc1 == T.Assoc0>(_ x: T) {}
90+
func j16<T>(_ x: T) where T: P, T: Q, T.Assoc2 == T.Assoc1, T.Assoc1 == T.Assoc0 {}
9191
// CHECK: interface_type_mangling.j17[[J_SIGNATURE]]
92-
func j17<T where T: P, T: Q, T.Assoc2 == T.Assoc1, T.Assoc2 == T.Assoc0>(_ x: T) {}
92+
func j17<T>(_ x: T) where T: P, T: Q, T.Assoc2 == T.Assoc1, T.Assoc2 == T.Assoc0 {}
9393
// CHECK: interface_type_mangling.j18[[J_SIGNATURE]]
94-
func j18<T where T: P, T: Q, T.Assoc0 == T.Assoc1, T.Assoc2 == T.Assoc0>(_ x: T) {}
94+
func j18<T>(_ x: T) where T: P, T: Q, T.Assoc0 == T.Assoc1, T.Assoc2 == T.Assoc0 {}
9595

9696
struct S {}
9797
struct G<X> {}
9898

9999
// CHECK-LABEL: interface_type_mangling.k01
100100
// CHECK: [[K_SIGNATURE:<A where A: interface_type_mangling.P, A.Assoc1 == interface_type_mangling.S, A.Assoc2 == interface_type_mangling.S>\(A\) -> \(\)]]
101-
func k01<T where T: P, S == T.Assoc1, T.Assoc1 == T.Assoc2>(_ x: T) {}
101+
func k01<T>(_ x: T) where T: P, S == T.Assoc1, T.Assoc1 == T.Assoc2 {}
102102
// CHECK: interface_type_mangling.k02[[K_SIGNATURE]]
103-
func k02<T where T: P, S == T.Assoc2, T.Assoc1 == T.Assoc2>(_ x: T) {}
103+
func k02<T>(_ x: T) where T: P, S == T.Assoc2, T.Assoc1 == T.Assoc2 {}
104104
// CHECK: interface_type_mangling.k03[[K_SIGNATURE]]
105-
func k03<T where T: P, S == T.Assoc2, T.Assoc1 == S>(_ x: T) {}
105+
func k03<T>(_ x: T) where T: P, S == T.Assoc2, T.Assoc1 == S {}
106106
// CHECK: interface_type_mangling.k04[[K_SIGNATURE]]
107-
func k04<T where T: P, T.Assoc1 == S, T.Assoc1 == T.Assoc2>(_ x: T) {}
107+
func k04<T>(_ x: T) where T: P, T.Assoc1 == S, T.Assoc1 == T.Assoc2 {}
108108
// CHECK: interface_type_mangling.k05[[K_SIGNATURE]]
109-
func k05<T where T: P, T.Assoc2 == S, T.Assoc1 == T.Assoc2>(_ x: T) {}
109+
func k05<T>(_ x: T) where T: P, T.Assoc2 == S, T.Assoc1 == T.Assoc2 {}
110110
// CHECK: interface_type_mangling.k06[[K_SIGNATURE]]
111-
func k06<T where T: P, T.Assoc2 == S, T.Assoc1 == S>(_ x: T) {}
111+
func k06<T>(_ x: T) where T: P, T.Assoc2 == S, T.Assoc1 == S {}
112112
// CHECK: interface_type_mangling.k07[[K_SIGNATURE]]
113-
func k07<T where T: P, T.Assoc1 == S, T.Assoc2 == T.Assoc1>(_ x: T) {}
113+
func k07<T>(_ x: T) where T: P, T.Assoc1 == S, T.Assoc2 == T.Assoc1 {}
114114
// CHECK: interface_type_mangling.k08[[K_SIGNATURE]]
115-
func k08<T where T: P, T.Assoc2 == S, T.Assoc2 == T.Assoc1>(_ x: T) {}
115+
func k08<T>(_ x: T) where T: P, T.Assoc2 == S, T.Assoc2 == T.Assoc1 {}
116116
// CHECK: interface_type_mangling.k09[[K_SIGNATURE]]
117-
func k09<T where T: P, T.Assoc2 == S, S == T.Assoc1>(_ x: T) {}
117+
func k09<T>(_ x: T) where T: P, T.Assoc2 == S, S == T.Assoc1 {}
118118
// CHECK: interface_type_mangling.k10[[K_SIGNATURE]]
119-
func k10<T where T: P, T.Assoc1 == T.Assoc2, S == T.Assoc1>(_ x: T) {}
119+
func k10<T>(_ x: T) where T: P, T.Assoc1 == T.Assoc2, S == T.Assoc1 {}
120120
// CHECK: interface_type_mangling.k11[[K_SIGNATURE]]
121-
func k11<T where T: P, T.Assoc1 == T.Assoc2, S == T.Assoc2>(_ x: T) {}
121+
func k11<T>(_ x: T) where T: P, T.Assoc1 == T.Assoc2, S == T.Assoc2 {}
122122
// CHECK: interface_type_mangling.k12[[K_SIGNATURE]]
123-
func k12<T where T: P, T.Assoc1 == S, S == T.Assoc2>(_ x: T) {}
123+
func k12<T>(_ x: T) where T: P, T.Assoc1 == S, S == T.Assoc2 {}
124124
// CHECK: interface_type_mangling.k13[[K_SIGNATURE]]
125-
func k13<T where T: P, T.Assoc1 == T.Assoc2, T.Assoc1 == S>(_ x: T) {}
125+
func k13<T>(_ x: T) where T: P, T.Assoc1 == T.Assoc2, T.Assoc1 == S {}
126126
// CHECK: interface_type_mangling.k14[[K_SIGNATURE]]
127-
func k14<T where T: P, T.Assoc1 == T.Assoc2, T.Assoc2 == S>(_ x: T) {}
127+
func k14<T>(_ x: T) where T: P, T.Assoc1 == T.Assoc2, T.Assoc2 == S {}
128128
// CHECK: interface_type_mangling.k15[[K_SIGNATURE]]
129-
func k15<T where T: P, T.Assoc1 == S, T.Assoc2 == S>(_ x: T) {}
129+
func k15<T>(_ x: T) where T: P, T.Assoc1 == S, T.Assoc2 == S {}
130130
// CHECK: interface_type_mangling.k16[[K_SIGNATURE]]
131-
func k16<T where T: P, T.Assoc2 == T.Assoc1, T.Assoc1 == S>(_ x: T) {}
131+
func k16<T>(_ x: T) where T: P, T.Assoc2 == T.Assoc1, T.Assoc1 == S {}
132132
// CHECK: interface_type_mangling.k17[[K_SIGNATURE]]
133-
func k17<T where T: P, T.Assoc2 == T.Assoc1, T.Assoc2 == S>(_ x: T) {}
133+
func k17<T>(_ x: T) where T: P, T.Assoc2 == T.Assoc1, T.Assoc2 == S {}
134134
// CHECK: interface_type_mangling.k18[[K_SIGNATURE]]
135-
func k18<T where T: P, S == T.Assoc1, T.Assoc2 == S>(_ x: T) {}
135+
func k18<T>(_ x: T) where T: P, S == T.Assoc1, T.Assoc2 == S {}
136136

137137
// CHECK-LABEL: interface_type_mangling.L01
138138
// CHECK: [[L_SIGNATURE:<A where A: interface_type_mangling.P, A.Assoc1 == interface_type_mangling.G<A>, A.Assoc2 == interface_type_mangling.G<A>>\(A\) -> \(\)]]
139-
func L01<T where T: P, G<T> == T.Assoc1, T.Assoc1 == T.Assoc2>(_ x: T) {}
139+
func L01<T>(_ x: T) where T: P, G<T> == T.Assoc1, T.Assoc1 == T.Assoc2 {}
140140
// CHECK: interface_type_mangling.L02[[L_SIGNATURE]]
141-
func L02<T where T: P, G<T> == T.Assoc2, T.Assoc1 == T.Assoc2>(_ x: T) {}
141+
func L02<T>(_ x: T) where T: P, G<T> == T.Assoc2, T.Assoc1 == T.Assoc2 {}
142142
// CHECK: interface_type_mangling.L03[[L_SIGNATURE]]
143-
func L03<T where T: P, G<T> == T.Assoc2, T.Assoc1 == G<T>>(_ x: T) {}
143+
func L03<T>(_ x: T) where T: P, G<T> == T.Assoc2, T.Assoc1 == G<T> {}
144144
// CHECK: interface_type_mangling.L04[[L_SIGNATURE]]
145-
func L04<T where T: P, T.Assoc1 == G<T>, T.Assoc1 == T.Assoc2>(_ x: T) {}
145+
func L04<T>(_ x: T) where T: P, T.Assoc1 == G<T>, T.Assoc1 == T.Assoc2 {}
146146
// CHECK: interface_type_mangling.L05[[L_SIGNATURE]]
147-
func L05<T where T: P, T.Assoc2 == G<T>, T.Assoc1 == T.Assoc2>(_ x: T) {}
147+
func L05<T>(_ x: T) where T: P, T.Assoc2 == G<T>, T.Assoc1 == T.Assoc2 {}
148148
// CHECK: interface_type_mangling.L06[[L_SIGNATURE]]
149-
func L06<T where T: P, T.Assoc2 == G<T>, T.Assoc1 == G<T>>(_ x: T) {}
149+
func L06<T>(_ x: T) where T: P, T.Assoc2 == G<T>, T.Assoc1 == G<T> {}
150150
// CHECK: interface_type_mangling.L07[[L_SIGNATURE]]
151-
func L07<T where T: P, T.Assoc1 == G<T>, T.Assoc2 == T.Assoc1>(_ x: T) {}
151+
func L07<T>(_ x: T) where T: P, T.Assoc1 == G<T>, T.Assoc2 == T.Assoc1 {}
152152
// CHECK: interface_type_mangling.L08[[L_SIGNATURE]]
153-
func L08<T where T: P, T.Assoc2 == G<T>, T.Assoc2 == T.Assoc1>(_ x: T) {}
153+
func L08<T>(_ x: T) where T: P, T.Assoc2 == G<T>, T.Assoc2 == T.Assoc1 {}
154154
// CHECK: interface_type_mangling.L09[[L_SIGNATURE]]
155-
func L09<T where T: P, T.Assoc2 == G<T>, G<T> == T.Assoc1>(_ x: T) {}
155+
func L09<T>(_ x: T) where T: P, T.Assoc2 == G<T>, G<T> == T.Assoc1 {}
156156
// CHECK: interface_type_mangling.L10[[L_SIGNATURE]]
157-
func L10<T where T: P, T.Assoc1 == T.Assoc2, G<T> == T.Assoc1>(_ x: T) {}
157+
func L10<T>(_ x: T) where T: P, T.Assoc1 == T.Assoc2, G<T> == T.Assoc1 {}
158158
// CHECK: interface_type_mangling.L11[[L_SIGNATURE]]
159-
func L11<T where T: P, T.Assoc1 == T.Assoc2, G<T> == T.Assoc2>(_ x: T) {}
159+
func L11<T>(_ x: T) where T: P, T.Assoc1 == T.Assoc2, G<T> == T.Assoc2 {}
160160
// CHECK: interface_type_mangling.L12[[L_SIGNATURE]]
161-
func L12<T where T: P, T.Assoc1 == G<T>, G<T> == T.Assoc2>(_ x: T) {}
161+
func L12<T>(_ x: T) where T: P, T.Assoc1 == G<T>, G<T> == T.Assoc2 {}
162162
// CHECK: interface_type_mangling.L13[[L_SIGNATURE]]
163-
func L13<T where T: P, T.Assoc1 == T.Assoc2, T.Assoc1 == G<T>>(_ x: T) {}
163+
func L13<T>(_ x: T) where T: P, T.Assoc1 == T.Assoc2, T.Assoc1 == G<T> {}
164164
// CHECK: interface_type_mangling.L14[[L_SIGNATURE]]
165-
func L14<T where T: P, T.Assoc1 == T.Assoc2, T.Assoc2 == G<T>>(_ x: T) {}
165+
func L14<T>(_ x: T) where T: P, T.Assoc1 == T.Assoc2, T.Assoc2 == G<T> {}
166166
// CHECK: interface_type_mangling.L15[[L_SIGNATURE]]
167-
func L15<T where T: P, T.Assoc1 == G<T>, T.Assoc2 == G<T>>(_ x: T) {}
167+
func L15<T>(_ x: T) where T: P, T.Assoc1 == G<T>, T.Assoc2 == G<T> {}
168168
// CHECK: interface_type_mangling.L16[[L_SIGNATURE]]
169-
func L16<T where T: P, T.Assoc2 == T.Assoc1, T.Assoc1 == G<T>>(_ x: T) {}
169+
func L16<T>(_ x: T) where T: P, T.Assoc2 == T.Assoc1, T.Assoc1 == G<T> {}
170170
// CHECK: interface_type_mangling.L17[[L_SIGNATURE]]
171-
func L17<T where T: P, T.Assoc2 == T.Assoc1, T.Assoc2 == G<T>>(_ x: T) {}
171+
func L17<T>(_ x: T) where T: P, T.Assoc2 == T.Assoc1, T.Assoc2 == G<T> {}
172172
// CHECK: interface_type_mangling.L18[[L_SIGNATURE]]
173-
func L18<T where T: P, G<T> == T.Assoc1, T.Assoc2 == G<T>>(_ x: T) {}
173+
func L18<T>(_ x: T) where T: P, G<T> == T.Assoc1, T.Assoc2 == G<T> {}
174174

175175
struct X {}; struct Y {}
176176

177177
// CHECK-LABEL: interface_type_mangling.m1
178178
// CHECK: [[M_SIGNATURE:<A, B where A: interface_type_mangling.A, B: interface_type_mangling.A, A.Assoc == interface_type_mangling.X, B.Assoc == interface_type_mangling.Y>\(_: A, y: B\) -> \(\)]]
179-
func m1<T: A, U: A where T.Assoc == X, U.Assoc == Y>(_ x: T, y: U) {}
179+
func m1<T: A, U: A>(_ x: T, y: U) where T.Assoc == X, U.Assoc == Y {}
180180
// CHECK: interface_type_mangling.m2[[M_SIGNATURE]]
181-
func m2<T: A, U: A where U.Assoc == Y, T.Assoc == X>(_ x: T, y: U) {}
181+
func m2<T: A, U: A>(_ x: T, y: U) where U.Assoc == Y, T.Assoc == X {}
182182
// CHECK: interface_type_mangling.m3[[M_SIGNATURE]]
183-
func m3<T, U where T: A, U: A, U.Assoc == Y, T.Assoc == X>(_ x: T, y: U) {}
183+
func m3<T, U>(_ x: T, y: U) where T: A, U: A, U.Assoc == Y, T.Assoc == X {}
184184

185185
protocol GenericWitnessTest {
186186
associatedtype Tee

test/SILGen/partial_apply_init.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func class_init_partial_apply(c: C.Type) {
4242
// CHECK: class_method %0 : $@thick C.Type, #C.init!allocator.1
4343

4444
// CHECK-LABEL: sil hidden @$S18partial_apply_init010archetype_c1_a1_B0{{[_0-9a-zA-Z]*}}F
45-
func archetype_init_partial_apply<T: C where T: P>(t: T.Type) {
45+
func archetype_init_partial_apply<T: C>(t: T.Type) where T: P {
4646
// Archetype initializations are always dynamic, whether applied to the type or a metatype.
4747
// CHECK: function_ref @$S18partial_apply_init1CC{{[_0-9a-zA-Z]*}}fC
4848
let requiredT: (Double) -> T = T.init

test/SILGen/property_abstraction.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ protocol Factory {
130130
associatedtype Product
131131
var builder : () -> Product { get set }
132132
}
133-
func setBuilder<F: Factory where F.Product == MyClass>(_ factory: inout F) {
133+
func setBuilder<F: Factory>(_ factory: inout F) where F.Product == MyClass {
134134
factory.builder = { return MyClass() }
135135
}
136136
// CHECK: sil hidden @$S20property_abstraction10setBuilder{{[_0-9a-zA-Z]*}}F : $@convention(thin) <F where F : Factory, F.Product == MyClass> (@inout F) -> ()

test/SILGen/protocol_class_refinement.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func getObjectUID<T: ObjectUID>(x: T) -> (Int, Int, Int, Int) {
8282
}
8383

8484
// CHECK-LABEL: sil hidden @$S25protocol_class_refinement16getBaseObjectUID{{[_0-9a-zA-Z]*}}F
85-
func getBaseObjectUID<T: UID where T: Base>(x: T) -> (Int, Int, Int) {
85+
func getBaseObjectUID<T: UID>(x: T) -> (Int, Int, Int) where T: Base {
8686
var x = x
8787
// CHECK: [[XBOX:%.*]] = alloc_box $<τ_0_0 where τ_0_0 : Base, τ_0_0 : UID> { var τ_0_0 } <T>
8888
// CHECK: [[PB:%.*]] = project_box [[XBOX]]

0 commit comments

Comments
 (0)