[Macros] Expand conformance macros as extension macros.

ConformanceMacro now refines ExtensionMacro, so these roles can share
the same expansion request.
This commit is contained in:
Holly Borla
2023-06-28 22:11:54 -07:00
parent a9df3e2256
commit c3e214cbde
7 changed files with 35 additions and 28 deletions

View File

@@ -8673,15 +8673,8 @@ getMacroExpansionBuffers(MacroDecl *macro, const CustomAttr *attr, Decl *decl) {
allBufferIDs.append(bufferIDs.begin(), bufferIDs.end());
}
if (roles.contains(MacroRole::Conformance)) {
if (auto nominal = dyn_cast<NominalTypeDecl>(decl)) {
auto bufferIDs = evaluateOrDefault(
ctx.evaluator, ExpandConformanceMacros{nominal}, { });
allBufferIDs.append(bufferIDs.begin(), bufferIDs.end());
}
}
if (roles.contains(MacroRole::Extension)) {
if (roles.contains(MacroRole::Conformance) ||
roles.contains(MacroRole::Extension)) {
if (auto nominal = dyn_cast<NominalTypeDecl>(decl)) {
auto bufferIDs = evaluateOrDefault(
ctx.evaluator, ExpandExtensionMacros{nominal}, { });