dmd 1.064 and 2.049 release

osa osa at aso.osa
Fri Sep 17 13:08:19 PDT 2010


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.


More information about the Digitalmars-d-announce mailing list