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/CrossImport/member-import-visibility.swift
+2-2
Original file line number
Diff line number
Diff line change
@@ -39,8 +39,8 @@ import Swift
39
39
// expected-note@-1 2 {{add import of module 'DeclaringLibrary'}}
40
40
41
41
privatefunc test(){
42
-
returnsDeclaringTy().overlayMember() // expected-error {{instance method 'overlayMember()' is not available due to missing imports of defining modules 'DeclaringLibrary' and 'BystandingLibrary'}}
43
-
returnsBystandingTy().overlayMember() // expected-error {{instance method 'overlayMember()' is not available due to missing imports of defining modules 'DeclaringLibrary' and 'BystandingLibrary'}}
42
+
returnsDeclaringTy().overlayMember() // expected-error {{instance method 'overlayMember()' is not available due to missing imports of defining modules 'BystandingLibrary' and 'DeclaringLibrary'}}
43
+
returnsBystandingTy().overlayMember() // expected-error {{instance method 'overlayMember()' is not available due to missing imports of defining modules 'BystandingLibrary' and 'DeclaringLibrary'}}
Copy file name to clipboardExpand all lines: test/NameLookup/members_transitive.swift
+19-5
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@
9
9
// REQUIRES: swift_feature_MemberImportVisibility
10
10
11
11
import members_C
12
-
// expected-member-visibility-note 16{{add import of module 'members_B'}}{{1-1=internal import members_B\n}}
12
+
// expected-member-visibility-note 18{{add import of module 'members_B'}}{{1-1=internal import members_B\n}}
13
13
14
14
15
15
func testExtensionMembers(x:X, y:Y<Z>){
@@ -96,8 +96,22 @@ class DerivedFromClassInC: DerivedClassInC {
96
96
97
97
structConformsToProtocolInA:ProtocolInA{} // expected-member-visibility-error{{type 'ConformsToProtocolInA' does not conform to protocol 'ProtocolInA'}} expected-member-visibility-note {{add stubs for conformance}}
98
98
99
-
func testDerivedMethodAccess(){
100
-
DerivedClassInC().methodInC()
101
-
DerivedClassInC().methodInB() // expected-member-visibility-error{{instance method 'methodInB()' is not available due to missing import of defining module 'members_B'}}
102
-
DerivedFromClassInC().methodInB()
99
+
func testInheritedMethods(
100
+
a:BaseClassInA,
101
+
c:DerivedClassInC,
102
+
){
103
+
letb= c.asDerivedClassInB()
104
+
105
+
a.methodInA()
106
+
b.methodInA()
107
+
c.methodInA()
108
+
109
+
b.methodInB() // expected-member-visibility-error{{instance method 'methodInB()' is not available due to missing import of defining module 'members_B'}}
110
+
c.methodInB() // expected-member-visibility-error{{instance method 'methodInB()' is not available due to missing import of defining module 'members_B'}}
111
+
112
+
c.methodInC()
113
+
114
+
a.overriddenMethod()
115
+
b.overriddenMethod() // expected-member-visibility-error{{instance method 'overriddenMethod()' is not available due to missing import of defining module 'members_B'}}
// expected-member-visibility-note@-1 2 {{add import of module 'Categories_C'}}{{1-1=internal import Categories_C\n}}
16
+
// expected-member-visibility-note@-1 3 {{add import of module 'Categories_C'}}{{1-1=internal import Categories_C\n}}
17
17
// expected-member-visibility-note@-2 {{add import of module 'Categories_D'}}{{1-1=internal import Categories_D\n}}
18
18
func test(x:X){
19
19
x.fromA()
20
20
x.fromOverlayForA()
21
+
x.overriddenInOverlayForA() // expected-warning {{'overriddenInOverlayForA()' is deprecated: Categories_A.swift}}
21
22
x.fromB()
22
23
x.fromOverlayForB()
24
+
x.overriddenInOverlayForB() // expected-warning {{'overriddenInOverlayForB()' is deprecated: Categories_B.swift}}
23
25
x.fromC() // expected-member-visibility-error {{instance method 'fromC()' is not available due to missing import of defining module 'Categories_C'}}
24
26
x.fromOverlayForC() // expected-member-visibility-error {{instance method 'fromOverlayForC()' is not available due to missing import of defining module 'Categories_C'}}
27
+
x.overriddenInOverlayForC()
28
+
// expected-no-member-visibility-warning@-1 {{'overriddenInOverlayForC()' is deprecated: Categories_C.swift}}
29
+
// expected-member-visibility-warning@-2 {{'overriddenInOverlayForC()' is deprecated: Categories_A.h}}
25
30
x.fromSubmoduleOfD() // expected-member-visibility-error {{instance method 'fromSubmoduleOfD()' is not available due to missing import of defining module 'Categories_D'}}
26
31
x.fromBridgingHeader()
27
32
x.overridesCategoryMethodOnNSObject()
33
+
34
+
letsubclassFromC=makeSubclassFromC()
35
+
subclassFromC.overriddenInSubclassInOverlayForC()
36
+
// expected-warning@-1 {{'overriddenInSubclassInOverlayForC()' is deprecated: Categories_C.swift}}
37
+
// expected-member-visibility-error@-2 {{instance method 'overriddenInSubclassInOverlayForC()' is not available due to missing import of defining module 'Categories_C'}}
28
38
}
29
39
30
40
func testAnyObject(a:AnyObject){
31
41
a.fromA()
32
42
a.fromOverlayForAObjC()
43
+
a.overriddenInOverlayForA() // expected-warning {{'overriddenInOverlayForA()' is deprecated: Categories_A.h}}
33
44
a.fromB()
34
45
a.fromOverlayForBObjC()
46
+
a.overriddenInOverlayForB() // expected-warning {{'overriddenInOverlayForB()' is deprecated: Categories_A.h}}
35
47
// FIXME: Better diagnostics?
36
48
// Name lookup for AnyObject already ignored transitive imports, so
37
49
// `MemberImportVisibility` has no effect on these diagnostics.
38
50
a.fromC() // expected-error {{value of type 'AnyObject' has no member 'fromC'}}
39
51
a.fromOverlayForCObjC() // expected-error {{value of type 'AnyObject' has no member 'fromOverlayForCObjC'}}
52
+
a.overriddenInOverlayForC() // expected-warning {{'overriddenInOverlayForC()' is deprecated: Categories_A.h}}
0 commit comments