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



--- Comment #5 from Don <clugd...@yahoo.com.au> 2010-05-22 07:15:10 PDT ---
I don't have a patch for this, but the direct reason for the observed behaviour
is in expression.c, line 9023. If the type being inserted has an opAssign
overload, then it drops out of AssignExp::semantic() immediately and discards
the rest of the expression.
This isn't a real patch, since it still doesn't call postblit.

    /* If it is an assignment from a 'foreign' type,
     * check for operator overloading.
     */
    if (t1->ty == Tstruct)
    {
        StructDeclaration *sd = ((TypeStruct *)t1)->sym;
        if (op == TOKassign)
        {
            Expression *e = op_overload(sc);

+            if (e1->op==TOKindex &&
+                ((IndexExp *)e1)->e1->type->toBasetype()->ty == Taarray)
+            {
+            // If it is an AA, the assignment 
+            // should be treated as a function call (Bugzilla 2451)
+            }
+            else
             if (e)
                return e;
        }

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to