digitalmars.D - Feature request: Bringing mixed-in operators and constructors to the
- Tommi (47/47) Nov 10 2013 We can bring mixed-in methods to the desired overload set, but
- Tommi (2/2) Nov 11 2013 Filed an enhancement request:
- deadalnix (2/4) Nov 11 2013 Everything should work the same way.
- Tommi (3/7) Nov 19 2013 Do you mean that what I'm reporting is a compiler-bug rather than
- Timon Gehr (4/12) Nov 19 2013 I'd argue yes, but similar issues have surprisingly attracted some
- Tommi (3/17) Nov 19 2013 Hmmm... decisions decisions. I changed it from enhancement to bug
We can bring mixed-in methods to the desired overload set, but not operators or constructors. Here's what I mean: mixin template methodMix() { void foo(int n) { } } mixin template operatorMix() { void opBinary(string op)(int n) { } } mixin template ctorMix() { this(int n) { } } struct MethodTest { mixin methodMix mix; alias foo = mix.foo; void foo(string s) { } } struct OperatorTest { mixin operatorMix mix; alias opBinary = mix.opBinary; void opBinary(string op)(string s) { } // [1] } struct CtorTest { mixin ctorMix mix; // If only I could do the following to bring the // mixed-in constructor to the overload set: //alias this = mix.this; this(string s) { } } void main() { MethodTest mt; mt.foo(3); OperatorTest ot; ot + 3; auto ct = CtorTest(3); // [2] } ----------------- 1. Error: template test.OperatorTest.opBinary(string op)(string s) conflicts with alias test.OperatorTest.opBinary 2. Error: constructor test.CtorTest.this (string s) is not callable using argument types (int)
Nov 10 2013
Filed an enhancement request: https://d.puremagic.com/issues/show_bug.cgi?id=11500
Nov 11 2013
On Monday, 11 November 2013 at 21:58:44 UTC, Tommi wrote:Filed an enhancement request: https://d.puremagic.com/issues/show_bug.cgi?id=11500Everything should work the same way.
Nov 11 2013
On Tuesday, 12 November 2013 at 01:17:20 UTC, deadalnix wrote:On Monday, 11 November 2013 at 21:58:44 UTC, Tommi wrote:Do you mean that what I'm reporting is a compiler-bug rather than a feature request?Filed an enhancement request: https://d.puremagic.com/issues/show_bug.cgi?id=11500Everything should work the same way.
Nov 19 2013
On 11/19/2013 11:13 AM, Tommi wrote:On Tuesday, 12 November 2013 at 01:17:20 UTC, deadalnix wrote:I'd argue yes, but similar issues have surprisingly attracted some controversy in the past. (The constructor aliasing is an enhancement though as it extends the language grammar.)On Monday, 11 November 2013 at 21:58:44 UTC, Tommi wrote:Do you mean that what I'm reporting is a compiler-bug rather than a feature request?Filed an enhancement request: https://d.puremagic.com/issues/show_bug.cgi?id=11500Everything should work the same way.
Nov 19 2013
On Tuesday, 19 November 2013 at 22:51:10 UTC, Timon Gehr wrote:On 11/19/2013 11:13 AM, Tommi wrote:Hmmm... decisions decisions. I changed it from enhancement to bug (normal priority) anyway.On Tuesday, 12 November 2013 at 01:17:20 UTC, deadalnix wrote:I'd argue yes, but similar issues have surprisingly attracted some controversy in the past. (The constructor aliasing is an enhancement though as it extends the language grammar.)On Monday, 11 November 2013 at 21:58:44 UTC, Tommi wrote:Do you mean that what I'm reporting is a compiler-bug rather than a feature request?Filed an enhancement request: https://d.puremagic.com/issues/show_bug.cgi?id=11500Everything should work the same way.
Nov 19 2013