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...