digitalmars.D - Mixin bug / unhelpful behavior?
- =?UTF-8?B?Ikx1w61z?= Marques" (32/32) Apr 23 2013 Consider the following code:
- bearophile (11/15) Apr 23 2013 I think that here D is working according to its current specs.
- =?UTF-8?B?Ikx1w61z?= Marques" (2/6) Apr 23 2013 I'm going to post it in a new thread.
Consider the following code: mixin template Bar() { void Bar() {}; } void mixin_ok() { mixin Bar; Bar(); } void mixin_not_defined_ok() { mixin UndefinedMixin; // OK, compile-time error } void mixin_not_defined_bug()() { mixin UndefinedMixin; // No error, unless mixin_not_defined_bug is called. Bug? } void mixin_alias() { alias Foo = Bar; mixin Foo; //Foo(); // error: template instance Bar!() mixin templates are not regular templates Bar(); // ok, but not very helpful } Questions: 1) Is it a bug that mixin_not_defined_bug does not produce a compile-time error, unless it is called? (DMD64 v2.062, OS X) 2) Wouldn't it make be helpful if "Foo()" did the same thing as Bar()?
Apr 23 2013
Luís Marques:1) Is it a bug that mixin_not_defined_bug does not produce a compile-time error, unless it is called? (DMD64 v2.062, OS X)I think that here D is working according to its current specs. On the other hand this topic was recently discussed and despite Andrei the consensus seems that such error situations should be found by the D compiler. There is an enhancement request on this, I like it, and Walter seems to like the idea.2) Wouldn't it make be helpful if "Foo()" did the same thing as Bar()?Mixin templates are a relatively new feature and maybe that alias use case was not considered, or it was not regarded as important. What are your use cases of aliasing a mixing template? Bye, bearophile
Apr 23 2013
On Tuesday, 23 April 2013 at 23:25:11 UTC, bearophile wrote:Mixin templates are a relatively new feature and maybe that alias use case was not considered, or it was not regarded as important. What are your use cases of aliasing a mixing template?I'm going to post it in a new thread.
Apr 23 2013