D-Programming-Language/dmd — pull request #4177 by 9rnsr (2014-11-29 03:53:43+00:00)
Title: Issue 13783 - Function overload with rvalue `inout` parameter not selected when `enum` parameter implicitly converted to its base type

https://issues.dlang.org/show_bug.cgi?id=13783

The root issue is a flaw in the overload resolution mechanism.
For the function `auto f(ref T);`, an lvalue of `enum E : T` should not match.

Requires phobos tweaking: https://github.com/D-Programming-Language/phobos/pull/2773