Thread overview | |||||
---|---|---|---|---|---|
|
June 08, 2013 DMD bug | ||||
---|---|---|---|---|
| ||||
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 |
June 08, 2013 Re: DMD bug | ||||
---|---|---|---|---|
| ||||
Posted in reply to Eric | 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.
|
June 08, 2013 Re: DMD bug | ||||
---|---|---|---|---|
| ||||
Posted in reply to Eric | On 6/8/2013 11:05 AM, Eric wrote: > The following code will cause the compiler to crash: All bug reports should be posted here: http://d.puremagic.com/issues/ |
Copyright © 1999-2021 by the D Language Foundation