You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
compilation fails for no reason in given example involving a template using mixin, static if and __traits(compiles, ...) code reflection. see details in example as it is too complicated to describe.
might be related to issue 12532. however, example fails as well when 'enum' is replaced by 'const'
=== EXAMPLE ===
template valid(string mem){
pragma(msg, "instantiation of valid with: "~mem);
static if( !__traits( compiles, mixin(mem) ) ){
enum valid = false;
}else{
enum valid = true;
}
}
enum works = valid!"fails";
pragma(msg, "found 'fails' (via 'works')? "~works.stringof );
// compiles but produces 'false': issue 12532
enum dummy = valid!"fails";
pragma(msg, "found 'fails' (via 'dummy')? "~dummy.stringof );
// compiles but produces 'false': issue 12532
enum fails = valid!"fails";
// Error: variable demo.fails had semantic errors when compiling
// NOTE: if you comment out the first two usages of valid!"fails",
// it will work here - but give 'false' again.
// pragma(msg, "found 'fails' (via 'fails')? "~fails.stringof );
void main(){}
The text was updated successfully, but these errors were encountered:
det reported this on 2014-04-06T16:39:50Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=12533
Description
The text was updated successfully, but these errors were encountered: