https://issues.dlang.org/show_bug.cgi?id=17759
bitter.ta...@gmx.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bitter.ta...@gmx.com --- Comment #2 from bitter.ta...@gmx.com --- This happens because the built-in `opEquals' that's synthesized by the compiler contains a condition such as `(p == q)` that's recursively expanded into `(p.foo == q) and `(p.foo.foo == q)`. The problem lies in `resolvePropertiesX' that keeps assembling this crazy chain where the `p' is substituted every step. --