Dependencies: Add new options to qualified lookup for known dependencies.

Specifically, a qualified lookup can now be treated as:
- a known private dependency, which does not affect downstream files
- a known non-private dependency, which may affect downstream files
- a known non-dependency
- unknown, which means the compiler will try to infer whether it's a
  private dependency from the context

This commit also includes some obvious uses of the new flags, but nothing
actually too interesting yet; there shouldn't be any observable behavior
change here in normal user code.

Swift SVN r23483
This commit is contained in:
Jordan Rose
2014-11-20 20:58:17 +00:00
parent cb1bf10f81
commit 985cbb8b2a
8 changed files with 86 additions and 18 deletions

View File

@@ -1065,7 +1065,8 @@ Decl *ModuleFile::resolveCrossReference(Module *M, uint32_t pathLen) {
Identifier name = getIdentifier(IID);
pathTrace.addValue(name);
M->lookupQualified(ModuleType::get(M), name, NL_QualifiedDefault,
M->lookupQualified(ModuleType::get(M), name,
NL_QualifiedDefault | NL_KnownNoDependency,
/*typeResolver=*/nullptr, values);
filterValues(getType(TID), nullptr, isType, None, values);
break;