On Saturday, 8 June 2013 at 18:05:16 UTC, Eric wrote:
The following code will cause the compiler to crash:
import std.traits;
interface Identity(V, K) if (hasMember!(V, "k")) {
}
class Foo(K): Identity!(Foo!K, K) {
K k;
}
void main() {
new Foo!double;
}
This occurs on both compiler versions, 2.062 and
v2.063-devel-53aa503.
At a minimum the compiler should print an error message instead
of seg-faulting, but I would hope that the above code would
actually compile
successfully.
-Eric
I should also add that many of the "functions" in std.traits
will cause the compiler to crash when used to constrain an
interface
in this manner.