After upgrading to 2.049, trying to compile this code:
----
import std.traits;
void foo() {}
void main() {
    static assert( ! hasUnsharedAliasing!foo );
}
----
gives this error:
dmd2/linux/bin/../../src/phobos/std/traits.d(971): Error: template instance isAssociativeArray!(foo) does not match template declaration isAssociativeArray(T) dmd2/linux/bin/../../src/phobos/std/traits.d(971): Error: expression isAssociativeArray!(foo) is not constant or does not evaluate to a bool

It used to work with 2.048 so it is probably caused by fixing bug 4834.

Also, error message points to the guts of std.traits and does not give any clue about actual instantiation of hasUnsharedAliasing which caused this. It was not easy to reduce the problem to the small test case.

Reply via email to