D-Programming-Language/dmd — pull request #2444 by 9rnsr (2013-08-02 05:12:59+00:00)
Title: Add semantic3a phase (fix 2.064a regressions 10726 and 10736)

[REG2.064a] [Issue 10726](http://d.puremagic.com/issues/show_bug.cgi?id=10726) - Bogus Circular Reference error if opEquals defined and has a loop

`TypeInfo` for struct types requires additional semantic3 to generate xopEquals and xopCmp, even if it is a non-template type that is merely imported. To handle it correctly, move the process into semantic3a phase.

[REG2.064a] [Issue 10736](http://d.puremagic.com/issues/show_bug.cgi?id=10736) - Regression (2.064 git-head): Instantiation failure triggered by module import and module order

Immediate semantic3 invocation would cause mutual forward reference. To avoid the problem, defer it to semantic3a phase.

---

This PR replaces #2421 and #2442.