|
1 | 1 | // RUN: %target-run-simple-swift | %FileCheck %s
|
2 | 2 | // REQUIRES: executable_test
|
3 | 3 |
|
| 4 | +@available(iOS 9999, macOS 9999, tvOS 9999, watchOS 9999, *) |
4 | 5 | protocol P {
|
5 | 6 | associatedtype AT
|
6 | 7 | func foo() -> AT
|
7 | 8 | }
|
8 | 9 |
|
| 10 | +@available(iOS 9999, macOS 9999, tvOS 9999, watchOS 9999, *) |
9 | 11 | struct Adapter<T: P>: P {
|
10 | 12 | var inner: T
|
| 13 | + |
| 14 | + @available(iOS 9999, macOS 9999, tvOS 9999, watchOS 9999, *) |
11 | 15 | func foo() -> some P {
|
12 | 16 | return inner
|
13 | 17 | }
|
14 | 18 | }
|
15 | 19 |
|
| 20 | +@available(iOS 9999, macOS 9999, tvOS 9999, watchOS 9999, *) |
16 | 21 | extension P {
|
| 22 | + @available(iOS 9999, macOS 9999, tvOS 9999, watchOS 9999, *) |
17 | 23 | func foo() -> some P {
|
18 | 24 | return Adapter(inner: self)
|
19 | 25 | }
|
20 | 26 | }
|
21 | 27 |
|
| 28 | +@available(iOS 9999, macOS 9999, tvOS 9999, watchOS 9999, *) |
22 | 29 | func getPAT<T: P>(_: T.Type) -> Any.Type {
|
23 | 30 | return T.AT.self
|
24 | 31 | }
|
25 | 32 |
|
| 33 | +@available(iOS 9999, macOS 9999, tvOS 9999, watchOS 9999, *) |
26 | 34 | extension Int: P { }
|
27 | 35 |
|
28 |
| -// CHECK: Adapter<Int> |
29 |
| -print(getPAT(Int.self)) |
| 36 | +// CHECK: {{Adapter<Int>|too old}} |
| 37 | +if #available(iOS 9999, macOS 9999, tvOS 9999, watchOS 9999, *) { |
| 38 | + print(getPAT(Int.self)) |
| 39 | +} else { |
| 40 | + print("i'm getting too old for this sh") |
| 41 | +} |
0 commit comments