@@ -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 ();
@@ -1163,13 +1163,6 @@ void SourceFile::lookupPrecedenceGroupDirect(
1163
1163
1164
1164
void ModuleDecl::getImportedModules (SmallVectorImpl<ImportedModule> &modules,
1165
1165
ModuleDecl::ImportFilter filter) const {
1166
- assert (filter.containsAny (ImportFilter ({
1167
- ModuleDecl::ImportFilterKind::Exported,
1168
- ModuleDecl::ImportFilterKind::Default,
1169
- ModuleDecl::ImportFilterKind::ImplementationOnly}))
1170
- && " filter should have at least one of Exported|Private|ImplementationOnly"
1171
- );
1172
-
1173
1166
FORWARD (getImportedModules, (modules, filter));
1174
1167
}
1175
1168
@@ -1194,12 +1187,11 @@ SourceFile::getImportedModules(SmallVectorImpl<ImportedModule> &modules,
1194
1187
requiredFilter |= ModuleDecl::ImportFilterKind::Exported;
1195
1188
else if (desc.options .contains (ImportFlags::ImplementationOnly))
1196
1189
requiredFilter |= ModuleDecl::ImportFilterKind::ImplementationOnly;
1190
+ else if (desc.options .contains (ImportFlags::SPIAccessControl))
1191
+ requiredFilter |= ModuleDecl::ImportFilterKind::SPIAccessControl;
1197
1192
else
1198
1193
requiredFilter |= ModuleDecl::ImportFilterKind::Default;
1199
1194
1200
- if (desc.options .contains (ImportFlags::SPIAccessControl))
1201
- requiredFilter |= ModuleDecl::ImportFilterKind::SPIAccessControl;
1202
-
1203
1195
if (!separatelyImportedOverlays.lookup (desc.module .importedModule ).empty ())
1204
1196
requiredFilter |= ModuleDecl::ImportFilterKind::ShadowedByCrossImportOverlay;
1205
1197
@@ -2374,7 +2366,7 @@ bool FileUnit::walk(ASTWalker &walker) {
2374
2366
#ifndef NDEBUG
2375
2367
PrettyStackTraceDecl debugStack (" walking into decl" , D);
2376
2368
#endif
2377
-
2369
+
2378
2370
if (D->walk (walker))
2379
2371
return true ;
2380
2372
@@ -2513,15 +2505,15 @@ SourceFile::lookupOpaqueResultType(StringRef MangledName) {
2513
2505
auto found = ValidatedOpaqueReturnTypes.find (MangledName);
2514
2506
if (found != ValidatedOpaqueReturnTypes.end ())
2515
2507
return found->second ;
2516
-
2508
+
2517
2509
// If there are unvalidated decls with opaque types, go through and validate
2518
2510
// them now.
2519
2511
(void ) getOpaqueReturnTypeDecls ();
2520
2512
2521
2513
found = ValidatedOpaqueReturnTypes.find (MangledName);
2522
2514
if (found != ValidatedOpaqueReturnTypes.end ())
2523
2515
return found->second ;
2524
-
2516
+
2525
2517
// Otherwise, we don't have a matching opaque decl.
2526
2518
return nullptr ;
2527
2519
}
0 commit comments