Why is the error message coming by the end of the compilation?
Steven Schveighoffer
schveiguy at yahoo.com
Sat Apr 14 17:58:20 UTC 2018
On 4/14/18 4:16 AM, bauss wrote:
>
> I tried to use __traits(compiles) but it always returns false for the
> code I'm going to mixin, even though it's valid, that was my initial go
> to, so this is really a second attempt on something to give meaningful
> error messages when certain mixins don't compile.
>
Hm.. that seems annoying. I'd guess you'd get simple tests to work,
maybe it's the way you are using __traits(compiles).
If all else fails, back out to the place where you are using it. At some
point, it is a function call. Just wrap that call, and check if it
compiles or not.
e.g.:
static assert(__traits(compiles, theFunction(theItem), "this code won't
compile: " ~ theItem.source);
// if we get here, it will compile
theFunction(theItem);
D can be quite perplexing when you have so much meta in it :)
-Steve
More information about the Digitalmars-d-learn
mailing list