diff --git a/dmd/expression.c b/dmd/expression.c index 5a7ef295..467fb267 100644 --- a/dmd/expression.c +++ b/dmd/expression.c @@ -8609,14 +8609,6 @@ Expression *CatAssignExp::semantic(Scope *sc) e2 = e2->castTo(sc, e1->type); type = e1->type; e = this; - } - else if ((tb1->ty == Tarray) && - e2->implicitConvTo(tb1next) - ) - { // Append element - e2 = e2->castTo(sc, tb1next); - type = e1->type; - e = this; // Reenable when _d_arrayappendwd and cd are in the runtime. /* } @@ -8633,6 +8625,14 @@ Expression *CatAssignExp::semantic(Scope *sc) * to be a surrogate pair, nothing good can result. */ } + else if ((tb1->ty == Tarray) && + e2->implicitConvTo(tb1next) + ) + { // Append element + e2 = e2->castTo(sc, tb1next); + type = e1->type; + e = this; + } else { if (tb1 != Type::terror && tb2 != Type::terror)