Move access-path filtering into ModuleNameLookup (out of lookupValue) (#27097)

Removes duplicated logic from the implementations of
FileUnit::lookupValue, and simplifies the interface to
ModuleDecl::lookupValue, where everyone was passing an empty
(non-filtering) access path anyway /except/ during actual lookup from
source code. No functionality change.
This commit is contained in:
Jordan Rose
2019-09-10 09:13:20 -07:00
committed by GitHub
parent 04ae94fbf3
commit d4ac04d25e
21 changed files with 52 additions and 83 deletions

View File

@@ -80,7 +80,11 @@ private:
void doLocalLookup(ModuleDecl *module, ModuleDecl::AccessPathTy path,
SmallVectorImpl<ValueDecl *> &localDecls) {
module->lookupValue(path, name, lookupKind, localDecls);
// If this import is specific to some named decl ("import Swift.Int")
// then filter out any lookups that don't match.
if (!ModuleDecl::matchesAccessPath(path, name))
return;
module->lookupValue(name, lookupKind, localDecls);
}
};