December 21, 2018 Some Nullable-related issue | ||||
---|---|---|---|---|
| ||||
Pavel Chebotarev found that this code causes error on DMD: import std.typecons; struct Atom { Nullable!long a1; Nullable!long a2; Nullable!long a3; Nullable!long a4; Nullable!long a5; Nullable!long a6; Nullable!long a7; Nullable!long a8; Nullable!long a9; Nullable!long a10; } struct Molecule { Nullable!Atom a1; Nullable!Atom a2; Nullable!Atom a3; Nullable!Atom a4; } struct Material { Nullable!Molecule u1; Nullable!Molecule u2; Nullable!Molecule u3; } struct House { Nullable!Material m1; } dmd bug01.d /usr/include/dmd/phobos/std/traits.d(2810): Error: template instance `std.traits.RepresentationTypeTuple!(Material).Impl!(Atom, bool, bool)` recursive expansion Probably, LDC is not affected, but currently we can't check this (and maybe LDC uses another version of Phobos and this is Phobos issue) |
December 22, 2018 Re: Some Nullable-related issue | ||||
---|---|---|---|---|
| ||||
Posted in reply to Denis Feklushkin | On Friday, 21 December 2018 at 03:26:30 UTC, Denis Feklushkin wrote:
> /usr/include/dmd/phobos/std/traits.d(2810): Error: template instance `std.traits.RepresentationTypeTuple!(Material).Impl!(Atom, bool, bool)` recursive expansion
With gdc 6.3.0 it compiles successfully. This is supposed to correspond to dmd 2.068.2 but compiling with that gives me a long list of linker errors.
Using dvm installed DMD:
2.083.0 - same error as you show
2.081.1 - OK
2.076.0 - OK
2.068.2 - link error
|
Copyright © 1999-2021 by the D Language Foundation