|
1 | 1 | // RUN: %target-typecheck-verify-swift -parse-as-library -module-name MyModule
|
2 | 2 |
|
3 |
| -// REQUIRES: OS=macosx |
4 |
| - |
5 | 3 | @available(*, unavailable)
|
6 | 4 | func unavailable_foo() {} // expected-note {{'unavailable_foo()' has been explicitly marked unavailable here}}
|
7 | 5 |
|
@@ -31,90 +29,6 @@ func foo(x : NSUInteger) { // expected-error {{'NSUInteger' is unavailable: use
|
31 | 29 | // expected-error@-1 {{cannot convert value of type 'Int' to specified type 'Outer.NSUInteger'}}
|
32 | 30 | }
|
33 | 31 |
|
34 |
| -/* FIXME 'nil == a' fails to type-check with a bogus error message |
35 |
| - * <rdar://problem/17540796> |
36 |
| -func markUsed<T>(t: T) {} |
37 |
| -func testString() { |
38 |
| - let a : String = "Hey" |
39 |
| - if a == nil { |
40 |
| - markUsed("nil") |
41 |
| - } else if nil == a { |
42 |
| - markUsed("nil") |
43 |
| - } |
44 |
| - else { |
45 |
| - markUsed("not nil") |
46 |
| - } |
47 |
| -} |
48 |
| - */ |
49 |
| - |
50 |
| -// Test preventing protocol witnesses for unavailable requirements |
51 |
| -@objc |
52 |
| -protocol ProtocolWithRenamedRequirement { |
53 |
| - @available(*, unavailable, renamed: "new(bar:)") |
54 |
| - @objc optional func old(foo: Int) // expected-note{{'old(foo:)' has been explicitly marked unavailable here}} |
55 |
| - func new(bar: Int) |
56 |
| -} |
57 |
| - |
58 |
| -class ClassWithGoodWitness : ProtocolWithRenamedRequirement { |
59 |
| - @objc func new(bar: Int) {} |
60 |
| -} |
61 |
| - |
62 |
| -class ClassWithBadWitness : ProtocolWithRenamedRequirement { |
63 |
| - @objc func old(foo: Int) {} // expected-error{{'old(foo:)' has been renamed to 'new(bar:)'}} |
64 |
| - @objc func new(bar: Int) {} |
65 |
| -} |
66 |
| - |
67 |
| -@available(OSX, unavailable) |
68 |
| -let unavailableOnOSX: Int = 0 // expected-note{{explicitly marked unavailable here}} |
69 |
| -@available(iOS, unavailable) |
70 |
| -let unavailableOniOS: Int = 0 |
71 |
| -@available(iOS, unavailable) @available(OSX, unavailable) |
72 |
| -let unavailableOnBothA: Int = 0 // expected-note{{explicitly marked unavailable here}} |
73 |
| -@available(OSX, unavailable) @available(iOS, unavailable) |
74 |
| -let unavailableOnBothB: Int = 0 // expected-note{{explicitly marked unavailable here}} |
75 |
| - |
76 |
| -@available(OSX, unavailable) |
77 |
| -typealias UnavailableOnOSX = Int // expected-note{{explicitly marked unavailable here}} |
78 |
| -@available(iOS, unavailable) |
79 |
| -typealias UnavailableOniOS = Int |
80 |
| -@available(iOS, unavailable) @available(OSX, unavailable) |
81 |
| -typealias UnavailableOnBothA = Int // expected-note{{explicitly marked unavailable here}} |
82 |
| -@available(OSX, unavailable) @available(iOS, unavailable) |
83 |
| -typealias UnavailableOnBothB = Int // expected-note{{explicitly marked unavailable here}} |
84 |
| - |
85 |
| -@available(macOS, unavailable) |
86 |
| -let unavailableOnMacOS: Int = 0 // expected-note{{explicitly marked unavailable here}} |
87 |
| -@available(macOS, unavailable) |
88 |
| -typealias UnavailableOnMacOS = Int // expected-note{{explicitly marked unavailable here}} |
89 |
| - |
90 |
| -@available(OSXApplicationExtension, unavailable) |
91 |
| -let unavailableOnOSXAppExt: Int = 0 |
92 |
| -@available(macOSApplicationExtension, unavailable) |
93 |
| -let unavailableOnMacOSAppExt: Int = 0 |
94 |
| - |
95 |
| -@available(OSXApplicationExtension, unavailable) |
96 |
| -typealias UnavailableOnOSXAppExt = Int |
97 |
| -@available(macOSApplicationExtension, unavailable) |
98 |
| -typealias UnavailableOnMacOSAppExt = Int |
99 |
| - |
100 |
| -func testPlatforms() { |
101 |
| - _ = unavailableOnOSX // expected-error{{unavailable}} |
102 |
| - _ = unavailableOniOS |
103 |
| - _ = unavailableOnBothA // expected-error{{unavailable}} |
104 |
| - _ = unavailableOnBothB // expected-error{{unavailable}} |
105 |
| - _ = unavailableOnMacOS // expected-error{{unavailable}} |
106 |
| - _ = unavailableOnOSXAppExt |
107 |
| - _ = unavailableOnMacOSAppExt |
108 |
| - |
109 |
| - let _: UnavailableOnOSX = 0 // expected-error{{unavailable}} |
110 |
| - let _: UnavailableOniOS = 0 |
111 |
| - let _: UnavailableOnBothA = 0 // expected-error{{unavailable}} |
112 |
| - let _: UnavailableOnBothB = 0 // expected-error{{unavailable}} |
113 |
| - let _: UnavailableOnMacOS = 0 // expected-error{{unavailable}} |
114 |
| - let _: UnavailableOnOSXAppExt = 0 |
115 |
| - let _: UnavailableOnMacOSAppExt = 0 |
116 |
| -} |
117 |
| - |
118 | 32 | struct VarToFunc {
|
119 | 33 | @available(*, unavailable, renamed: "function()")
|
120 | 34 | var variable: Int { // expected-note 2 {{explicitly marked unavailable here}}
|
|
0 commit comments