@@ -2270,27 +2270,41 @@ void declarationToDCode(ref CodeWriter code, DWriterData data, Declaration d, im
22702270 else
22712271 {
22722272 code.customIndent = origCustomIndent;
2273+ string innerCode = instance.instanceCode[instance.realCodeStart .. instance.realCodeEnd];
22732274 if (instance.macroTranslation == MacroTranslation.enumValue)
22742275 code.writeln(" enum " , instance.usedName, " =" ,
22752276 instance.instanceCode[0 .. instance.realCodeStart],
2276- instance.instanceCode[instance.realCodeStart .. instance.realCodeEnd] , " ;" ,
2277+ innerCode , " ;" ,
22772278 instance.instanceCode[instance.realCodeEnd
22782279 .. $].withoutTrailingWhitespace);
22792280 else if (instance.macroTranslation == MacroTranslation.alias_)
22802281 code.writeln(" alias " , instance.usedName, " =" ,
22812282 instance.instanceCode[0 .. instance.realCodeStart],
2282- instance.instanceCode[instance.realCodeStart .. instance.realCodeEnd] , " ;" ,
2283+ innerCode , " ;" ,
22832284 instance.instanceCode[instance.realCodeEnd
22842285 .. $].withoutTrailingWhitespace);
22852286 else if (instance.macroTranslation == MacroTranslation.mixin_)
2287+ {
2288+ string codePrefix = " q{" ;
2289+ string codeSuffix = " }" ;
2290+ if (instance.mixinMacroHasInterpolation)
2291+ {
2292+ codePrefix = " mixin(interpolateMixin(" ~ codePrefix;
2293+ codeSuffix ~= " ))" ;
2294+ }
2295+ if (instance.canForwardMacroMixin && innerCode.startsWith(" $(" ) && innerCode.endsWith(" )" ))
2296+ {
2297+ codePrefix = " " ;
2298+ codeSuffix = " " ;
2299+ innerCode = innerCode[2 .. $ - 1 ];
2300+ }
22862301 code.writeln(" enum " , instance.usedName, " =" ,
22872302 instance.instanceCode[0 .. instance.realCodeStart],
2288- instance.mixinMacroHasInterpolation ? " mixin(interpolateMixin(" : " " ,
2289- " q{" , instance.instanceCode[instance.realCodeStart .. instance.realCodeEnd], " }" ,
2290- instance.mixinMacroHasInterpolation ? " ))" : " " ,
2303+ codePrefix, innerCode, codeSuffix,
22912304 " ;" ,
22922305 instance.instanceCode[instance.realCodeEnd
22932306 .. $].withoutTrailingWhitespace);
2307+ }
22942308 code.customIndent = newCustomIndent;
22952309 }
22962310 }
0 commit comments