June 15, 2022 [Issue 23188] New: The enum of const has a complier exception of type conversion in the ternary operator. | ||||
---|---|---|---|---|
| ||||
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@puremagic.com Reporter: shove@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; } -- |
Copyright © 1999-2021 by the D Language Foundation