https://issues.dlang.org/show_bug.cgi?id=9999
Denis Shelomovskij <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #12 from Denis Shelomovskij <[email protected]> --- Also this issue has to terrible consequences: 1. `f(bool)` is preferred over `f(T)(T)` 2. expressions like `4 - 3` triggers the issue too This code should run fine: --- int f1(bool) { return 1; } int f1(T)(T) { return 2; } void f2()(bool) { static assert(0); } void f2(T)(T) { } void main() { assert(f1( 0) == 2); // fails assert(f1( 1) == 2); // fails assert(f1( 1U) == 2); // fails assert(f1(4 - 3) == 2); // fails f2( 0); // triggers `static assert(0)` f2( 1); // ditto f2( 1U); // ditto f2(4 - 3); // ditto } --- --
