Skip to content

Commit d30b46e

Browse files
committed
Root unqualified lookups with module selectors at file scope
1 parent 1dfc0bf commit d30b46e

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

lib/AST/UnqualifiedLookup.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,8 +249,9 @@ void UnqualifiedLookupFactory::performUnqualifiedLookup() {
249249
}
250250

251251
if (Loc.isValid() && DC->getParentSourceFile()) {
252-
// Operator lookup is always global, for the time being.
253-
if (!Name.isOperator())
252+
// Operator lookup is always global, for the time being. Unqualified lookups
253+
// with module selectors always start at global scope.
254+
if (!Name.isOperator() && !Name.hasModuleSelector())
254255
lookInASTScopes();
255256
} else {
256257
assert((DC->isModuleScopeContext() || !DC->getParentSourceFile()) &&

test/NameLookup/module_selector.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ extension C: @retroactive ModuleSelectorTestingKit::Equatable {
141141
if ModuleSelectorTestingKit::Bool.ModuleSelectorTestingKit::random() {
142142

143143
ModuleSelectorTestingKit::negate()
144+
// expected-error@-1 {{cannot find 'ModuleSelectorTestingKit::negate' in scope}}
144145
}
145146
else {
146147
self = ModuleSelectorTestingKit::C(value: .ModuleSelectorTestingKit::min)
@@ -209,11 +210,11 @@ extension D: @retroactive Swift::Equatable {
209210
}
210211

211212
let mog: Never = fatalError()
213+
// expected-note@-1 {{did you mean 'mog'?}}
212214

213215
func localVarsCantBeAccessedByModuleSelector() {
214216
let mag: Int.Swift::Magnitude = main::mag
215-
// expected-error@-1 {{use of local variable 'main::mag' before its declaration}}
216-
// expected-note@-2 {{'mag' declared here}}
217+
// expected-error@-1 {{cannot find 'main::mag' in scope}}
217218

218219
let mog: Never = main::mog
219220
}

0 commit comments

Comments
 (0)