@@ -1200,7 +1200,7 @@ swift::expandPeers(CustomAttr *attr, MacroDecl *macro, Decl *decl) {
12001200 return macroSourceFile->getBufferID ();
12011201}
12021202
1203- MacroDecl *
1203+ ConcreteDeclRef
12041204ResolveMacroRequest::evaluate (Evaluator &evaluator,
12051205 UnresolvedMacroReference macroRef,
12061206 DeclContext *dc) const {
@@ -1209,7 +1209,7 @@ ResolveMacroRequest::evaluate(Evaluator &evaluator,
12091209 auto foundMacros = TypeChecker::lookupMacros (
12101210 dc, macroRef.getMacroName (), SourceLoc (), roles);
12111211 if (foundMacros.empty ())
1212- return nullptr ;
1212+ return ConcreteDeclRef () ;
12131213
12141214 // If we already have a MacroExpansionExpr, use that. Otherwise,
12151215 // create one.
@@ -1228,13 +1228,9 @@ ResolveMacroRequest::evaluate(Evaluator &evaluator,
12281228 Expr *result = macroExpansion;
12291229 TypeChecker::typeCheckExpression (result, dc);
12301230
1231- auto macroDeclRef = macroExpansion->getMacroRef ();
1232- if (auto *macroDecl = dyn_cast_or_null<MacroDecl>(macroDeclRef.getDecl ()))
1233- return macroDecl;
1234-
12351231 // If we couldn't resolve a macro decl, the attribute is invalid.
1236- if (auto *attr = macroRef.getAttr ())
1237- attr ->setInvalid ();
1232+ if (!macroExpansion-> getMacroRef () && macroRef.getAttr ())
1233+ macroRef. getAttr () ->setInvalid ();
12381234
1239- return nullptr ;
1235+ return macroExpansion-> getMacroRef () ;
12401236}
0 commit comments