@@ -1272,24 +1272,27 @@ class swift::MemberLookupTable : public ASTAllocated<swift::MemberLookupTable> {
12721272 if (LazyMacroExpansionState.ComputedContainersWithMacroExpansions )
12731273 return LazyMacroExpansionState.ContainersWithMacroExpansions ;
12741274
1275- Evaluator &evaluator = nominal-> getASTContext (). evaluator ;
1275+ LazyMacroExpansionState. ComputedContainersWithMacroExpansions = true ;
12761276
12771277 // Does the type have macro expansions?
1278- if (evaluateOrDefault (
1279- evaluator, PotentialMacroExpansionsInContextRequest{nominal}, {}))
1280- LazyMacroExpansionState.ContainersWithMacroExpansions .push_back (nominal);
1278+ addContainerWithMacroExpansions (nominal);
12811279
12821280 // Check each extension for macro expansions.
1283- for (auto ext : nominal->getExtensions ()) {
1284- if (evaluateOrDefault (
1285- evaluator, PotentialMacroExpansionsInContextRequest{ext}, {}))
1286- LazyMacroExpansionState.ContainersWithMacroExpansions .push_back (ext);
1287- }
1281+ for (auto ext : nominal->getExtensions ())
1282+ addContainerWithMacroExpansions (ext);
12881283
1289- LazyMacroExpansionState.ComputedContainersWithMacroExpansions = true ;
12901284 return LazyMacroExpansionState.ContainersWithMacroExpansions ;
12911285 }
12921286
1287+ void addContainerWithMacroExpansions (TypeOrExtensionDecl container){
1288+ if (LazyMacroExpansionState.ComputedContainersWithMacroExpansions &&
1289+ evaluateOrDefault (
1290+ container.getAsDecl ()->getASTContext ().evaluator ,
1291+ PotentialMacroExpansionsInContextRequest{container}, {}))
1292+ LazyMacroExpansionState.ContainersWithMacroExpansions .push_back (
1293+ container);
1294+ }
1295+
12931296 // / Determine whether the given container has any macro-introduced names that
12941297 // / match the given declaration.
12951298 bool hasAnyMacroNamesMatching (TypeOrExtensionDecl container, DeclName name);
@@ -1439,6 +1442,8 @@ void NominalTypeDecl::addedExtension(ExtensionDecl *ext) {
14391442 } else {
14401443 table->addMembers (ext->getMembers ());
14411444 }
1445+
1446+ table->addContainerWithMacroExpansions (ext);
14421447}
14431448
14441449void NominalTypeDecl::addedMember (Decl *member) {
0 commit comments