August 31, 2014 [Issue 13408] New: template mixins allows to declare duplicates | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13408 Issue ID: 13408 Summary: template mixins allows to declare duplicates Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: major Priority: P1 Component: DMD Assignee: nobody@puremagic.com Reporter: temtaime@gmail.com import std.stdio; mixin template R() { ~this() { write(1); } } struct S { mixin R; ~this() { write(2); } } void main() { S s; } This code compiles OK and prints 21 when it should NOT. import std.stdio; mixin template R() { int a = 1; void foo() { write(a); } } struct S { mixin R; void bar() { write(a); } int a = 2; } void main() { S s; s.foo(); s.bar(); } This code also compiles OK and prints 12 when it's strange and bug-prone. -- |
Copyright © 1999-2021 by the D Language Foundation