digitalmars.D - possible mixin template bug?
- growler (31/31) Sep 23 2013 This compiles and runs but I think it is a bug.
- Kenji Hara (5/36) Sep 23 2013 The symbols that are introduced by mixin template never override/conflic...
- growler (4/9) Sep 23 2013 Thanks Kenji for the information. I guess I'd better go back and
This compiles and runs but I think it is a bug. --- import std.stdio; mixin template TestMixin(T) { int testMixin; } struct Test { int testMixin; mixin TestMixin!Test; } void main() { Test t; t.testMixin = 10; writefln("%s", t); } --- $ ./hack Test(10, 0) I can also change the struct to be: --- struct Test { string testMixin; mixin TestMixin!Test; } // and the assignment in main() to t.testMixin = "some string"; --- $ ./hack Test("some string", 0) so whether this is a bug or not, I think it is bad. Any thoughts? G.
Sep 23 2013
The symbols that are introduced by mixin template never override/conflict with the formally defined symbols. It's a designed behavior. Kenji Hara 2013/9/23 growler <growlercab gmail.com>This compiles and runs but I think it is a bug. --- import std.stdio; mixin template TestMixin(T) { int testMixin; } struct Test { int testMixin; mixin TestMixin!Test; } void main() { Test t; t.testMixin = 10; writefln("%s", t); } --- $ ./hack Test(10, 0) I can also change the struct to be: --- struct Test { string testMixin; mixin TestMixin!Test; } // and the assignment in main() to t.testMixin = "some string"; --- $ ./hack Test("some string", 0) so whether this is a bug or not, I think it is bad. Any thoughts? G.
Sep 23 2013
On Monday, 23 September 2013 at 12:08:37 UTC, Kenji Hara wrote:The symbols that are introduced by mixin template never override/conflict with the formally defined symbols. It's a designed behavior. Kenji HaraThanks Kenji for the information. I guess I'd better go back and read the docs again...and scurry off back to D.learn :D G.
Sep 23 2013