Skip to content

Commit bec3136

Browse files
committed
Sema: Unqualified lookup either needs a source location or a top-level context
1 parent 713b57b commit bec3136

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

lib/Sema/TypeCheckConstraints.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,9 @@ Expr *TypeChecker::resolveDeclRefExpr(UnresolvedDeclRefExpr *UDRE,
543543
// name/module qualifier to access top-level name.
544544
lookupOptions |= NameLookupFlags::IncludeOuterResults;
545545

546+
if (Loc.isInvalid())
547+
DC = DC->getModuleScopeContext();
548+
546549
auto Lookup = TypeChecker::lookupUnqualified(DC, Name, Loc, lookupOptions);
547550

548551
auto &Context = DC->getASTContext();
@@ -2459,8 +2462,9 @@ bool TypeChecker::typeCheckExprPattern(ExprPattern *EP, DeclContext *DC,
24592462
auto lookupOptions = defaultUnqualifiedLookupOptions;
24602463
lookupOptions |= NameLookupFlags::KnownPrivate;
24612464
auto matchLookup =
2462-
lookupUnqualified(DC, DeclNameRef(Context.Id_MatchOperator), SourceLoc(),
2463-
lookupOptions);
2465+
lookupUnqualified(DC->getModuleScopeContext(),
2466+
DeclNameRef(Context.Id_MatchOperator),
2467+
SourceLoc(), lookupOptions);
24642468
auto &diags = DC->getASTContext().Diags;
24652469
if (!matchLookup) {
24662470
diags.diagnose(EP->getLoc(), diag::no_match_operator);

lib/Sema/TypeCheckPattern.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ lookupUnqualifiedEnumMemberElement(DeclContext *DC, DeclNameRef name,
122122
auto lookupOptions = defaultUnqualifiedLookupOptions;
123123
lookupOptions |= NameLookupFlags::KnownPrivate;
124124
auto lookup =
125-
TypeChecker::lookupUnqualified(DC, name, SourceLoc(), lookupOptions);
125+
TypeChecker::lookupUnqualified(DC, name, UseLoc, lookupOptions);
126126
return filterForEnumElement(DC, UseLoc,
127127
/*unqualifiedLookup=*/true, lookup);
128128
}

0 commit comments

Comments
 (0)