are these bugs or expected behavior? (2 issues, see code below)

i thought enums are just compile time copy&paste magic so i cannot think of a 
reason why it should not be available at compile time...

if buggy, what is broken, enum (really bad) or pragma(msg,...) (worse enough)?
and are they in bugzilla already? (looked but nothing caught my eye)

if expected behavior, can someone pls explain.

cheers /det


import std.stdio;

enum Test{
        test2 = 2,
        test4 = 4
}

enum foo = Test.test2;
Test bar = Test.test4;

pragma( msg, foo );             // why does it print: cast(Test)2
                                // it should be: test2
                                // or at least simply: 2

//  pragma( msg, bar );         // Error: variable bar cannot be read at 
compile time

void main(){
        writeln( typeof(foo).stringof, " = ", foo );  
                // prints as expected: Test = test2
        writeln( typeof(bar).stringof, " = ", bar );  
                // prints as expected: Test = test4
}

Reply via email to