super(...) in mixin template

luminousone rd.hunt at gmail.com
Tue Mar 4 20:05:55 PST 2014


On Tuesday, 4 March 2014 at 12:04:12 UTC, John Colvin wrote:
> On Tuesday, 4 March 2014 at 12:01:46 UTC, John Colvin wrote:
>> On Tuesday, 4 March 2014 at 10:37:02 UTC, Steve Teale wrote:
>>> On Tuesday, 4 March 2014 at 07:23:29 UTC, Jacob Carlborg 
>>> wrote:
>>>>
>>>> Perhaps you already figured this out but template mixins can 
>>>> only mixin declarations, not expression or statements.
>>>>
>>>> --
>>>> /Jacob Carlborg
>>>
>>> Damn! Yup, first sentence of the documentation. Wishful 
>>> reading.
>>>
>>> Thanks.
>>> Steve
>>
>> You can of course mixin a function (either nested inside the 
>> constructor or as a member or even a free funtion) containing 
>> whatever you want and then call that.
>>
>> That won't help you with calling super() though, you can only 
>> call super from another constructor. You'd have to use a 
>> string mixin as that truly can inject arbitrary code.
>
> This opens a question:
>
> Should functions nested in constructors be given all the same 
> powers that a constructor has (calling super, initializing 
> const/immutable data etc)?

http://d.puremagic.com/issues/show_bug.cgi?id=3332

I would bet you can't call super from a mixin.


More information about the Digitalmars-d mailing list