mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Name lookup: add some assertions in an attempt to catch a bug.
The bug in question is an opaque crash with no project, rdar://problem/21204593. Swift SVN r31949
This commit is contained in:
@@ -149,6 +149,12 @@ static void lookupInModule(Module *module, Module::AccessPathTy accessPath,
|
||||
bool respectAccessControl,
|
||||
ArrayRef<Module::ImportedModule> extraImports,
|
||||
CallbackTy callback) {
|
||||
assert(module);
|
||||
assert(std::none_of(extraImports.begin(), extraImports.end(),
|
||||
[](Module::ImportedModule import) -> bool {
|
||||
return !import.second;
|
||||
}));
|
||||
|
||||
ModuleLookupCache::iterator iter;
|
||||
bool isNew;
|
||||
std::tie(iter, isNew) = cache.insert({{accessPath, module}, {}});
|
||||
@@ -192,6 +198,10 @@ static void lookupInModule(Module *module, Module::AccessPathTy accessPath,
|
||||
resolutionKind == ResolutionKind::Overloadable) {
|
||||
SmallVector<Module::ImportedModule, 8> reexports;
|
||||
module->getImportedModulesForLookup(reexports);
|
||||
assert(std::none_of(reexports.begin(), reexports.end(),
|
||||
[](Module::ImportedModule import) -> bool {
|
||||
return !import.second;
|
||||
}));
|
||||
reexports.append(extraImports.begin(), extraImports.end());
|
||||
|
||||
// Prefer scoped imports (import func Swift.max) to whole-module imports.
|
||||
|
||||
Reference in New Issue
Block a user