Skip to content

Commit 670127a

Browse files
committed
[Tests] NFC: Add a test-case for rdar://133340307 which is now fast
1 parent d69b6a0 commit 670127a

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
// RUN: %target-typecheck-verify-swift -solver-expression-time-threshold=1
2+
// REQUIRES: tools-release,no_asan
3+
4+
public protocol Applicative {}
5+
6+
public struct Kind<X, Y> {}
7+
8+
public extension Applicative {
9+
static func product<A1,B> (_ fa:Kind<Self,A1>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,B)> {
10+
fatalError()
11+
}
12+
13+
static func product<A1,A2,B> (_ fa:Kind<Self,(A1,A2)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,B)> {
14+
fatalError()
15+
}
16+
17+
static func product<A1,A2,A3,B> (_ fa:Kind<Self,(A1,A2,A3)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,B)> {
18+
fatalError()
19+
}
20+
21+
static func product<A1,A2,A3,A4,B> (_ fa:Kind<Self,(A1,A2,A3,A4)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,B)> {
22+
fatalError()
23+
}
24+
25+
static func product<A1,A2,A3,A4,A5,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,B)> {
26+
fatalError()
27+
}
28+
29+
static func product<A1,A2,A3,A4,A5,A6,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,B)> {
30+
fatalError()
31+
}
32+
33+
static func product<A1,A2,A3,A4,A5,A6,A7,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,B)> {
34+
fatalError()
35+
}
36+
37+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,B)> {
38+
fatalError()
39+
}
40+
41+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,B)> {
42+
fatalError()
43+
}
44+
45+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B)> {
46+
fatalError()
47+
}
48+
49+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,B)> {
50+
fatalError()
51+
}
52+
53+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,B)> {
54+
fatalError()
55+
}
56+
57+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,B)> {
58+
fatalError()
59+
}
60+
61+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,B)> {
62+
fatalError()
63+
}
64+
65+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,B)> {
66+
fatalError()
67+
}
68+
69+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,B)> {
70+
fatalError()
71+
}
72+
73+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,B)> {
74+
fatalError()
75+
}
76+
77+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,B)> {
78+
fatalError()
79+
}
80+
81+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,B)> {
82+
fatalError()
83+
}
84+
85+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,B)> {
86+
fatalError()
87+
}
88+
89+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,B)> {
90+
fatalError()
91+
}
92+
93+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,B)> {
94+
fatalError()
95+
}
96+
97+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,B)> {
98+
fatalError()
99+
}
100+
101+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,B)> {
102+
fatalError()
103+
}
104+
105+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,B)> {
106+
fatalError()
107+
}
108+
109+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,B)> {
110+
fatalError()
111+
}
112+
113+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,B)> {
114+
fatalError()
115+
}
116+
117+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,B)> {
118+
fatalError()
119+
}
120+
121+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,B)> {
122+
fatalError()
123+
}
124+
125+
static func product<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,B> (_ fa:Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30)>, _ fb:Kind<Self,B>) -> Kind<Self,(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,B)> {
126+
fatalError()
127+
}
128+
}
129+
130+
public extension Applicative {
131+
static func zip<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29> (_ fa0:Kind<Self,A0>, _ fa1:Kind<Self,A1>, _ fa2:Kind<Self,A2>, _ fa3:Kind<Self,A3>, _ fa4:Kind<Self,A4>, _ fa5:Kind<Self,A5>, _ fa6:Kind<Self,A6>, _ fa7:Kind<Self,A7>, _ fa8:Kind<Self,A8>, _ fa9:Kind<Self,A9>, _ fa10:Kind<Self,A10>, _ fa11:Kind<Self,A11>, _ fa12:Kind<Self,A12>, _ fa13:Kind<Self,A13>, _ fa14:Kind<Self,A14>, _ fa15:Kind<Self,A15>, _ fa16:Kind<Self,A16>, _ fa17:Kind<Self,A17>, _ fa18:Kind<Self,A18>, _ fa19:Kind<Self,A19>, _ fa20:Kind<Self,A20>, _ fa21:Kind<Self,A21>, _ fa22:Kind<Self,A22>, _ fa23:Kind<Self,A23>, _ fa24:Kind<Self,A24>, _ fa25:Kind<Self,A25>, _ fa26:Kind<Self,A26>, _ fa27:Kind<Self,A27>, _ fa28:Kind<Self,A28>, _ fa29:Kind<Self,A29>) -> Kind<Self,(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29)> {
132+
product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(product(fa0, fa1), fa2), fa3), fa4), fa5), fa6), fa7), fa8), fa9), fa10), fa11), fa12), fa13), fa14), fa15), fa16), fa17), fa18), fa19), fa20), fa21), fa22), fa23), fa24), fa25), fa26), fa27), fa28), fa29) // Ok
133+
}
134+
}

0 commit comments

Comments
 (0)