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.
Comment #1 by ibuclaw — 2022-12-27T18:01:45Z
*** This issue has been marked as a duplicate of issue 18646 ***