static foreach not working with this

Steven Schveighoffer schveiguy at gmail.com
Mon Jan 7 16:31:49 UTC 2019


On 1/7/19 11:16 AM, Michelle Long wrote:
> On Monday, 7 January 2019 at 16:01:50 UTC, Michelle Long wrote:
>> static foreach(k, p; AliasSeq!(this, s))
>> {{
>>     p.foo(); // Fails even if this line is removed
>> }}
>>
>> this not known at compile time. replace s with this and it works! s is 
>> an argument which is also not known at compile time(generally).
>>
>> Should work with this.
>>
>> Just "simplifying"
>>
>> this.foo();
>> s.foo();
>>
>>
>> (obviously more complex code)
> 
> static foreach(k, p; AliasSeq!(Alias!this, s))
> {{
>      p.foo(); // Fails even if this line is removed
> }}

To expand on Michelle's cryptic response, the second form (using 
`Alias!this` instead of `this`) DOES work!

I think this is a bug. If the latter works, the former should. Please 
file at issues.dlang.org with a complete example.

-Steve


More information about the Digitalmars-d-learn mailing list