AliasSeq in UDA

Basile B. b2.temp at gmx.com
Sun Mar 10 13:43:39 UTC 2019


On Sunday, 10 March 2019 at 13:41:32 UTC, Basile B. wrote:
> On Sunday, 10 March 2019 at 13:20:12 UTC, Sebastiaan Koppe 
> wrote:
>> The compiler complains about `cannot form tuple of tuples` 
>> whenever I try to put an AliasSeq in a UDA and try to use it.
>>
>> You would expect the compiler to expand it. Is this a bug?
>>
>> ---
>>
>> import std.meta;
>>
>> enum A; enum B;
>>
>> @AliasSeq!(A,B) // <-- Error: cannot form tuple of tuples
>> struct Foo {}
>>
>> pragma(msg, __traits(getAttributes, Foo)); // <- must be 
>> present (error happens only when queried)
>>
>> void main() {}
>>
>> ---
>>
>> link to run.dlang.io: 
>> https://run.dlang.io/gist/cd5cd94d8ce5327e8a7d5ad77f1d15b8
>
> It looks like a bug, a "reject-valid" one.
> Try the same code with
>
>     enum A = 0;
>
> and it work, despite of B being still opaque. The problem may 
> be related to the fact the enum A in the orginal code is opaque 
> and has not type.
>
> I've seen a related issue lately.

It was 19605. But the relationship is not so obvious...


More information about the Digitalmars-d-learn mailing list