You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: test/attr/open_objc.swift
+12-2Lines changed: 12 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -9,10 +9,17 @@ open class InvalidOpenExtension {
9
9
openvaropenVar:Int{3} // No warning: Pure Swift properties can be open inside the class declaration.
10
10
}
11
11
extensionInvalidOpenExtension{
12
-
openfunc nonObjcOpenMethod(){} // expected-warning {{non-'@objc' methods in extensions cannot be overridden; use 'public' instead}} {{3-7=public}}
13
-
openvarnonObjcOpenVar:Int{3} // expected-warning {{non-'@objc' properties in extensions cannot be overridden; use 'public' instead}} {{3-7=public}}
12
+
openfunc nonObjcOpenMethod(){} // expected-warning {{non-'@objc' instance method in extensions cannot be overridden; use 'public' instead}} {{3-7=public}}
13
+
openclassfunc nonObjcOpenMethod(){} // expected-warning {{non-'@objc' class method in extensions cannot be overridden; use 'public' instead}} {{3-7=public}}
14
+
openvarnonObjcOpenVar:Int{3} // expected-warning {{non-'@objc' property in extensions cannot be overridden; use 'public' instead}} {{3-7=public}}
15
+
open subscript(_ index:Int)->Int{3} // expected-warning {{non-'@objc' subscript in extensions cannot be overridden; use 'public' instead}} {{3-7=public}}
16
+
openconvenienceinit(index:Int){self.init()} // expected-error {{only classes and overridable class members can be declared 'open'; use 'public'}} // expected-warning {{non-'@objc' initializer in extensions cannot be overridden; use 'public' instead}}
17
+
14
18
@objcopenfunc objcOpenMethod(){} // No warning: @objc methods can be open inside extensions.
15
19
@objcopenvarobjcOpenVar:Int{3} // No warning: @objc methods can be open inside extensions.
20
+
21
+
openclassnonObjcClassDecl{}
22
+
openenumnonObjcEnumDecl{case one } // expected-error {{only classes and overridable class members can be declared 'open'; use 'public'}} {{3-7=public}}
16
23
}
17
24
18
25
// For extensions with access level less than open, '`open` modifier conflicts with...' warning will always precede the 'non-@objc member...' warning.
@@ -28,7 +35,10 @@ public extension InvalidOpenExtension {
28
35
openclassValidOpenExtension{}
29
36
extensionValidOpenExtension{
30
37
openfunc objcOpenMethod(){} // No warning: This declaration is implicitly @objc
38
+
openclassfunc objcOpenMethod(){} // No warning: This declaration is implicitly @objc
31
39
openvarobjcOpenVar:Int{3} // No warning: This declaration is implicitly @objc
40
+
open subscript(_ index:Int)->Int{3} // No warning: This declaration is implicitly @objc
41
+
openconvenienceinit(index:Int){self.init()} // expected-error {{only classes and overridable class members can be declared 'open'; use 'public'}}
0 commit comments