On Tuesday, 13 November 2018 at 17:50:20 UTC, Neia Neutuladh
wrote:
On Tue, 13 Nov 2018 09:46:17 -0500, Steven Schveighoffer wrote:
Maybe the biggest gripe here is that enums don't prefer their
base types over what their base types convert to. In the
developer's mind, the conversion is:
A => int => (via VRP) short
which seems more complex than just
A => int
It affects explicit casts too:
void foo(short a) { writefln("short %s", a); }
void foo(int a) { writefln("int %s", a); }
foo(cast(int)0); // prints: short 0
Ok, now that has got to be a bug. If you explicit cast the number
to an integer then you expect the overload function with int to
be called.
-Alex