digitalmars.D - Some Nullable-related issue
- Denis Feklushkin (42/42) Dec 20 2018 Pavel Chebotarev found that this code causes error on DMD:
 - Tony (10/15) Dec 22 2018 With gdc 6.3.0 it compiles successfully. This is supposed to
 
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)
 Dec 20 2018
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
 Dec 22 2018








 
 
 
 Tony <tonytdominguez aol.com>