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
Permalink
Reply