https://issues.dlang.org/show_bug.cgi?id=22136
--- Comment #2 from Eduard Staniloiu <[email protected]> --- I did some digging on this, and the bug actually stems from the following issue ``` interface IObject { size_t toHash() @trusted nothrow; } interface Dummy {} interface Bug(E) : Dummy, IObject {} interface OK(E) : IObject, Dummy {} static assert(is(immutable OK!string* : immutable IObject*))); // OK static assert(is(immutable Bug!string* : immutable IObject*))); // fails ``` It appears that the order affects the is expression and the `is(immutable T* : immutable U*)` check is done inside the `hashOf` function. I'm currently investigating this in dmd. --
