[Issue 13408] New: template mixins allows to declare duplicates
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sun Aug 31 04:07:45 PDT 2014
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 at puremagic.com
Reporter: temtaime at 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.
--
More information about the Digitalmars-d-bugs
mailing list