test31

Undocumented in source.
immutable
@TestInfo(&tester31, [HostSymbol("print_num", cast(void*)&test31_external_print_num)])
auto test31 = q{--- test31 // test enums //enum i32 e2; // manifest constant, invalid, need initializer enum e3 = 3; // manifest constant enum i32 e4 = 4; // manifest constant enum { e5 = 5 } // anon type enum : i32 { e6 = 6 } // anon type enum e1; // type enum e7 : i32 { e7 = 7 } // type enum e8 : i32; // type, body omitted enum e9 { e9 = 9 } // type @extern(module, "host") void print_num(i64 val); e9 ret_enum(){ return e9.e9; } void accept_enum(e9 e){print_num(e);} void run() { print_num(e3); print_num(e4); print_num(e5); print_num(e6); // enum implicitly casts to base print_num(e7.e7); print_num(e9.e9); accept_enum(e9.e9); // explicit cast of int to enum accept_enum(cast(e9)42); // makes sure that e9.e9 is of type e9 and that e9 is implicitly castable to i32 print_num(ret_enum()); } };

Meta