[Issue 19479] Garbage .init in string mixins in static foreach in mixin templates
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Feb 6 06:41:41 UTC 2020
https://issues.dlang.org/show_bug.cgi?id=19479
Dlang Bot <dlang-bot at dlang.rocks> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #4 from Dlang Bot <dlang-bot at dlang.rocks> ---
dlang/dmd pull request #10767 "fix Issue 19479 - Garbage .init in string mixins
in static foreach in mixin templates" was merged into master:
- 02ddfe07acc0c0cee4cc8f5aa30210d9ad235e92 by Iain Buclaw:
fix Issue 19479 - Garbage .init in string mixins in static foreach in mixin
templates
The problem was that the mixin was being omitted from the codegen during
the conversion from StaticForeachDeclaration to a Statement.
The first issue with `toStatement` is that it is visiting all members in
the StaticForeachDeclaration's `decl`, whereas the semantically compiled
list of Dsymbols is instead found in `cache`. This is what caused the
CompileDeclaration to be omitted.
The second issue with `toStatement` is that converting an already
compiled StaticForeachDeclaration into a new StaticForeachStatement
results in `makeTupleForeach` being called twice for the same
StaticForeach symbol. There is no need to create a new
StaticForeachStatement, simply the unrolling of all members is enough.
https://github.com/dlang/dmd/pull/10767
--
More information about the Digitalmars-d-bugs
mailing list