[Issue 19585] New: Invalid recursive template expansion error
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Tue Jan 15 08:12:37 UTC 2019
    
    
  
https://issues.dlang.org/show_bug.cgi?id=19585
          Issue ID: 19585
           Summary: Invalid recursive template expansion error
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: ben.schaaf at gmail.com
Versions: 2.081.1, 2.083.0 (What I had installed)
The following code produces a compiler error when it shouldn't:
struct A {
    M2 stdin;
}
mixin template Handle(T, T invalid_value = T.init) {}
struct M1 { mixin Handle!(size_t); }
struct M2 { mixin Handle!(M1); }
template `foo.Handle(T, T invalid_value = T.init)` recursive template expansion
Not using the struct doesn't produce an error, so clearly expanding M2 works
perfectly. Using M1.init instead of relying on the default parameter doesn't
produce this issue.
--
    
    
More information about the Digitalmars-d-bugs
mailing list