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.