https://issues.dlang.org/show_bug.cgi?id=20876
--- Comment #16 from Walter Bright <[email protected]> --- If we add `const` to the first copy constructor: struct S { this(const ref S) { } } it compiles without error. It seems like a simple solution would be: 1. if all fields take a const argument, then generate a const copy constructor 2. if all fields take an immutable argument, then generate an immutable copy constructor 3. otherwise, generate a mutable copy constructor --
