[Issue 12532] __traits(compiles, ...) fails to see valid enum symbols

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Apr 7 07:20:57 PDT 2014


https://d.puremagic.com/issues/show_bug.cgi?id=12532



--- Comment #2 from det <2krnk at gmx.net> 2014-04-07 07:20:53 PDT ---
(In reply to comment #1)
> Reduced:
> 
> //----
> enum a = is(typeof(b));
> enum b = is(typeof(a));
> 
> pragma(msg, a); //true
> pragma(msg, b); //false
> //----
> 
> I'm not sure this is actually resolvable...?

sorry, i should have reduced it to

enum a = __traits(compiles, b);
pragma(msg, a);                 // true
enum b = __traits(compiles, a);
pragma(msg, b);                 // false

guess i was too preoccupied with issue 12533. however, i think b should be
true, __traits(compiles, ...) should not need the value or type of a. in other
words, it should be able to see that a symbol is defined without caring what it
actually is. as a matter of fact, in

enum c;
pragma(msg, typeof(c));         // _error_
pragma(msg, is(typeof(c)) );    // false
enum d = __traits(compiles, c);
pragma(msg, d);                 // true

this is kinda happening.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list