April 30 [Issue 24529] New: is expression ignores implicit conversion of enum when pattern matching | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=24529 Issue ID: 24529 Summary: is expression ignores implicit conversion of enum when pattern matching Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: snarwin+bugzilla@gmail.com As of DMD 2.108.0, the following program fails to compile: --- struct S(T) {} enum E : S!int { a = S!int() } static assert(is(E : S!int)); // ok static assert(is(E : S!T, T)); // error --- The error message is: --- bug.d(5): Error: static assert: `is(E : S!T, __isexp_id2, T)` is false --- The expected behavior is for both static assert statements to pass. See also issue 21975, in which the same error was caused by a struct with `alias this`. -- |
Copyright © 1999-2021 by the D Language Foundation