https://issues.dlang.org/show_bug.cgi?id=17983
Mike <slavo5...@yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |slavo5...@yahoo.com --- Comment #1 from Mike <slavo5...@yahoo.com> --- This doesn't appear to be a cast/conversion or overload problem. What's happening is the the compiler is keeping the first alias in lexical order, and ignoring any other aliases. i.e. the following works alias foo = (int i) => 4; // Notice int overload is first alias foo = (char c) => 1; enum int e = 7; static assert(foo(e) == 4); The compiler should probably emit an error on the second alias as foo is being redefined, but it certainly shouldn't just silently ignore it. --