@@ -95,7 +95,7 @@ void BuiltinUnit::LookupCache::lookupValue(
95
95
SmallVectorImpl<ValueDecl*> &Result) {
96
96
// Only qualified lookup ever finds anything in the builtin module.
97
97
if (LookupKind != NLKind::QualifiedLookup) return ;
98
-
98
+
99
99
ValueDecl *&Entry = Cache[Name];
100
100
ASTContext &Ctx = M.getParentModule ()->getASTContext ();
101
101
if (!Entry) {
@@ -175,7 +175,7 @@ class swift::SourceLookupCache {
175
175
176
176
// / Throw away as much memory as possible.
177
177
void invalidate ();
178
-
178
+
179
179
void lookupValue (DeclName Name, NLKind LookupKind,
180
180
SmallVectorImpl<ValueDecl*> &Result);
181
181
@@ -203,13 +203,13 @@ class swift::SourceLookupCache {
203
203
void lookupVisibleDecls (ImportPath::Access AccessPath,
204
204
VisibleDeclConsumer &Consumer,
205
205
NLKind LookupKind);
206
-
206
+
207
207
void populateMemberCache (const SourceFile &SF);
208
208
void populateMemberCache (const ModuleDecl &Mod);
209
209
210
210
void lookupClassMembers (ImportPath::Access AccessPath,
211
211
VisibleDeclConsumer &consumer);
212
-
212
+
213
213
void lookupClassMember (ImportPath::Access accessPath,
214
214
DeclName name,
215
215
SmallVectorImpl<ValueDecl*> &results);
@@ -331,7 +331,7 @@ void SourceLookupCache::lookupValue(DeclName Name, NLKind LookupKind,
331
331
SmallVectorImpl<ValueDecl*> &Result) {
332
332
auto I = TopLevelValues.find (Name);
333
333
if (I == TopLevelValues.end ()) return ;
334
-
334
+
335
335
Result.reserve (I->second .size ());
336
336
for (ValueDecl *Elt : I->second )
337
337
Result.push_back (Elt);
@@ -398,7 +398,7 @@ void SourceLookupCache::lookupVisibleDecls(ImportPath::Access AccessPath,
398
398
void SourceLookupCache::lookupClassMembers (ImportPath::Access accessPath,
399
399
VisibleDeclConsumer &consumer) {
400
400
assert (accessPath.size () <= 1 && " can only refer to top-level decls" );
401
-
401
+
402
402
if (!accessPath.empty ()) {
403
403
for (auto &member : ClassMembers) {
404
404
// Non-simple names are also stored under their simple name, so make
@@ -432,11 +432,11 @@ void SourceLookupCache::lookupClassMember(ImportPath::Access accessPath,
432
432
DeclName name,
433
433
SmallVectorImpl<ValueDecl*> &results) {
434
434
assert (accessPath.size () <= 1 && " can only refer to top-level decls" );
435
-
435
+
436
436
auto iter = ClassMembers.find (name);
437
437
if (iter == ClassMembers.end ())
438
438
return ;
439
-
439
+
440
440
if (!accessPath.empty ()) {
441
441
for (ValueDecl *vd : iter->second ) {
442
442
auto *nominal = vd->getDeclContext ()->getSelfNominalTypeDecl ();
@@ -1190,13 +1190,6 @@ void SourceFile::lookupPrecedenceGroupDirect(
1190
1190
1191
1191
void ModuleDecl::getImportedModules (SmallVectorImpl<ImportedModule> &modules,
1192
1192
ModuleDecl::ImportFilter filter) const {
1193
- assert (filter.containsAny (ImportFilter ({
1194
- ModuleDecl::ImportFilterKind::Exported,
1195
- ModuleDecl::ImportFilterKind::Default,
1196
- ModuleDecl::ImportFilterKind::ImplementationOnly}))
1197
- && " filter should have at least one of Exported|Private|ImplementationOnly"
1198
- );
1199
-
1200
1193
FORWARD (getImportedModules, (modules, filter));
1201
1194
}
1202
1195
@@ -1221,12 +1214,11 @@ SourceFile::getImportedModules(SmallVectorImpl<ImportedModule> &modules,
1221
1214
requiredFilter |= ModuleDecl::ImportFilterKind::Exported;
1222
1215
else if (desc.options .contains (ImportFlags::ImplementationOnly))
1223
1216
requiredFilter |= ModuleDecl::ImportFilterKind::ImplementationOnly;
1217
+ else if (desc.options .contains (ImportFlags::SPIAccessControl))
1218
+ requiredFilter |= ModuleDecl::ImportFilterKind::SPIAccessControl;
1224
1219
else
1225
1220
requiredFilter |= ModuleDecl::ImportFilterKind::Default;
1226
1221
1227
- if (desc.options .contains (ImportFlags::SPIAccessControl))
1228
- requiredFilter |= ModuleDecl::ImportFilterKind::SPIAccessControl;
1229
-
1230
1222
if (!separatelyImportedOverlays.lookup (desc.module .importedModule ).empty ())
1231
1223
requiredFilter |= ModuleDecl::ImportFilterKind::ShadowedByCrossImportOverlay;
1232
1224
@@ -2401,7 +2393,7 @@ bool FileUnit::walk(ASTWalker &walker) {
2401
2393
#ifndef NDEBUG
2402
2394
PrettyStackTraceDecl debugStack (" walking into decl" , D);
2403
2395
#endif
2404
-
2396
+
2405
2397
if (D->walk (walker))
2406
2398
return true ;
2407
2399
@@ -2540,15 +2532,15 @@ SourceFile::lookupOpaqueResultType(StringRef MangledName) {
2540
2532
auto found = ValidatedOpaqueReturnTypes.find (MangledName);
2541
2533
if (found != ValidatedOpaqueReturnTypes.end ())
2542
2534
return found->second ;
2543
-
2535
+
2544
2536
// If there are unvalidated decls with opaque types, go through and validate
2545
2537
// them now.
2546
2538
(void ) getOpaqueReturnTypeDecls ();
2547
2539
2548
2540
found = ValidatedOpaqueReturnTypes.find (MangledName);
2549
2541
if (found != ValidatedOpaqueReturnTypes.end ())
2550
2542
return found->second ;
2551
-
2543
+
2552
2544
// Otherwise, we don't have a matching opaque decl.
2553
2545
return nullptr ;
2554
2546
}
0 commit comments