// https://issues.dlang.org/show_bug.cgi?id=23172 | |
enum E : ubyte { // `ubyte` is needed to trigger the bug | |
A, | |
B, | |
} | |
struct S { | |
E e; | |
} | |
void compiles(bool b, S s) { | |
E e = b ? E.A : s.e; | |
} | |
void errors(bool b, const ref S s) { | |
E e = b ? E.A : s.e; | |
} | |
// from https://issues.dlang.org/show_bug.cgi?id=23188 | |
enum Status : byte | |
{ | |
A, B, C | |
} | |
Status foo() | |
{ | |
Status t = Status.A; | |
const Status s = t; | |
return (s == Status.A) ? Status.B : s; // <-- here | |
} |