D-Programming-Language/dmd — pull request #695 by yebblies (2012-02-05 03:30:28+00:00)
Title: Refactor XxxAssignExp semantic

Reduce code duplication for the semantic routines of `+=`, `-=`, `*=`, `/=`, `%=`, `&=`, `|=`, `^=`, `<<=`, `>>=`, `>>>=`

The semantic routines for these operators are nearly identical, and a lot of the differences are probably bugs.

Most of the remaining special casing is due to imaginary and complex types, which can be delete when those types are removed from the language.

In the process fix issues 7439 and 5181. (and possibly others)

http://d.puremagic.com/issues/show_bug.cgi?id=5181
http://d.puremagic.com/issues/show_bug.cgi?id=7439