[Issue 23188] New: The enum of const has a complier exception of type conversion in the ternary operator.
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Jun 15 01:57:50 UTC 2022
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: nobody at puremagic.com
Reporter: shove at 163.com
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;
}
--
More information about the Digitalmars-d-bugs
mailing list