https://issues.dlang.org/show_bug.cgi?id=23188
Issue ID: 23188
Summary: The enum of const has a complier exception of type
conversion in the ternary operator.
Product: D
Version: D2
Hardware: x86
OS: Mac OS X
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
enum Status : byte
{
A, B, C
}
void main()
{
}
Status foo()
{
Status t = Status.A;
const Status s = t;
return (s == Status.A) ? Status.B : s; // <-- here
}
# dmd app.d
app.d(16): Error: cannot implicitly convert expression `cast(int)s == 0 ? 1 :
cast(int)s` of type `int` to `Status`
/////////////////////////////////////////
So there's no problem:
Status foo()
{
Status t = Status.A;
const Status s = t;
if (s == Status.A)
return Status.B;
return s;
}
--