Skip to content

Commit 53446b5

Browse files
committed
Root unqualified lookups with module selectors at file scope
1 parent d72afad commit 53446b5

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
@@ -136,6 +136,7 @@ extension C: @retroactive ModuleSelectorTestingKit::Equatable {
136136
if ModuleSelectorTestingKit::Bool.ModuleSelectorTestingKit::random() {
137137

138138
ModuleSelectorTestingKit::negate()
139+
// expected-error@-1 {{cannot find 'ModuleSelectorTestingKit::negate' in scope}}
139140
}
140141
else {
141142
self = ModuleSelectorTestingKit::C(value: .ModuleSelectorTestingKit::min)
@@ -198,11 +199,11 @@ extension D: @retroactive Swift::Equatable {
198199
}
199200

200201
let mog: Never = fatalError()
202+
// expected-note@-1 {{did you mean 'mog'?}}
201203

202204
func localVarsCantBeAccessedByModuleSelector() {
203205
let mag: Int.Swift::Magnitude = main::mag
204-
// expected-error@-1 {{use of local variable 'main::mag' before its declaration}}
205-
// expected-note@-2 {{'mag' declared here}}
206+
// expected-error@-1 {{cannot find 'main::mag' in scope}}
206207

207208
let mog: Never = main::mog
208209
}

0 commit comments

Comments
 (0)