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
propXinB, // expected-member-visibility-error{{property 'propXinB' is not available due to missing import of defining module 'members_B'}}
74
-
propXinB_package, // expected-member-visibility-error{{property 'propXinB_package' is not available due to missing import of defining module 'members_B}}
75
-
propXinC
76
-
)
77
-
}
72
+
vartestPropertyInA:Bool{ propXinA }
73
+
vartestPropertyInB:Bool{ propXinB } // expected-member-visibility-error {{property 'propXinB' is not available due to missing import of defining module 'members_B'}}
74
+
vartestPropertyInB_package:Bool{ propXinB_package } // expected-member-visibility-error{{property 'propXinB_package' is not available due to missing import of defining module 'members_B}}
75
+
vartestPropertyInC:Bool{ propXinC }
76
+
77
+
// This is not diagnosed in either mode (the property from the nearest scope is always preferred
78
+
vartestAmbiguousProp:Bool{ ambiguousProp }
78
79
79
-
functestNestedTypes(){
80
+
functestTypeExpressions(){
80
81
_ =NestedInA.self
81
82
_ =NestedInB.self // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
82
83
_ =NestedInB_package.self // expected-member-visibility-error{{struct 'NestedInB_package' is not available due to missing import of defining module 'members_B'}}
84
+
_ =(NestedInB).self // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
85
+
_ =(NestedInA, NestedInB, NestedInC).self // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
86
+
_ = GenericType<NestedInB>.self // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
83
87
_ =NestedInC.self
88
+
_ =AmbiguousNestedType.self
84
89
}
85
90
86
-
varnestedInA:NestedInA{fatalError()}
87
-
varnestedInB:NestedInB{fatalError()} // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
88
-
varnestedInB_package:NestedInB_package{fatalError()} // expected-member-visibility-error{{struct 'NestedInB_package' is not available due to missing import of defining module 'members_B'}}
89
-
varnestedInC:NestedInC{fatalError()}
91
+
varhasNestedInAType:NestedInA{fatalError()}
92
+
varhasNestedInBType:NestedInB{fatalError()} // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
93
+
varhasNestedInB_packageType:NestedInB_package{fatalError()} // expected-member-visibility-error{{struct 'NestedInB_package' is not available due to missing import of defining module 'members_B'}}
94
+
varhasNestedInBTrivialTupleType:(NestedInB){fatalError()} // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
95
+
varhasTupleTypeContainingNestedInB:(NestedInA,NestedInB,NestedInC){fatalError()} // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
96
+
varhasNestedInBAsGenericTypeParameter:GenericType<NestedInB>{fatalError()} // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
func hasNestedInBInGenericReqs<T>(_ t:T)where T:ProtoNestedInB{} // expected-member-visibility-error{{protocol 'ProtoNestedInB' is not available due to missing import of defining module 'members_B'}}
extensionX.NestedInB{} // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
94
106
extensionX.NestedInB_package{} // expected-member-visibility-error{{struct 'NestedInB_package' is not available due to missing import of defining module 'members_B'}}
_ =EnumInB.self // expected-error{{cannot find 'EnumInB' in scope}}
100
112
_ =EnumInB_package.self // expected-error{{cannot find 'EnumInB_package' in scope}}
@@ -107,7 +119,8 @@ class DerivedFromClassInC: DerivedClassInC {
107
119
overridefunc methodInC(){}
108
120
}
109
121
110
-
structConformsToProtocolInA:ProtocolInA{} // expected-member-visibility-error{{type 'ConformsToProtocolInA' does not conform to protocol 'ProtocolInA'}} expected-member-visibility-note {{add stubs for conformance}}
122
+
// FIXME: Visibility of defaultedRequirementInB() should be diagnosed (rdar://154237873)
123
+
structConformsToProtocolInA:ProtocolInA{} // expected-member-visibility-error{{type 'ConformsToProtocolInA' does not conform to protocol 'ProtocolInA'}} expected-member-visibility-note {{add stubs for conformance}}{{44-44=\n func defaultedRequirementInB() {\n <#code#>\n \}\n}}
111
124
112
125
func testInheritedMethods(
113
126
a:BaseClassInA,
@@ -128,3 +141,11 @@ func testInheritedMethods(
128
141
b.overriddenMethod() // expected-member-visibility-error{{instance method 'overriddenMethod()' is not available due to missing import of defining module 'members_B'}}
129
142
c.overriddenMethod()
130
143
}
144
+
145
+
func testLeadingDotSyntax(){
146
+
func takesP<T:P>(_:T){}
147
+
takesP(.zInA)
148
+
takesP(.zInB) // expected-member-visibility-error{{static property 'zInB' is not available due to missing import of defining module 'members_B'}}
0 commit comments