I think the 1.0 and 2.0 docs have gotten confused. For example, from operatoroverloading.html (in the 1.057 download and website):
> If structs declare an opEquals member function, it should follow the
> following form:
>
> > struct S {
> > int opEquals(ref const S s) { ... }
> > }
> The expression:
>
> > a op= b
>
> is rewritten as:
>
> > a.opOpAssign!("op")(b)
