Mercurial > projects > ldc
diff dmd2/declaration.c @ 1577:e4f7b5d9c68a
DMD 2.032 Merge.
author | Robert Clipsham <robert@octarineparrot.com> |
---|---|
date | Tue, 08 Sep 2009 10:07:56 +0100 |
parents | 54b3c1394d62 |
children |
line wrap: on
line diff
--- a/dmd2/declaration.c Tue Aug 25 21:35:43 2009 +0200 +++ b/dmd2/declaration.c Tue Sep 08 10:07:56 2009 +0100 @@ -141,7 +141,7 @@ if (isConst()) p = "const"; else if (isInvariant()) - p = "mutable"; + p = "immutable"; else if (storage_class & STCmanifest) p = "enum"; else if (!t->isAssignable()) @@ -639,6 +639,7 @@ onstack = 0; canassign = 0; value = NULL; + rundtor = NULL; #if IN_LLVM aggrIndex = 0; @@ -956,9 +957,7 @@ Expression *e1; e1 = new VarExp(loc, this); e = new AssignExp(loc, e1, e); -#if DMDV2 e->op = TOKconstruct; -#endif e->type = e1->type; // don't type check this, it would fail init = new ExpInitializer(loc, e); return; @@ -979,10 +978,8 @@ { init = getExpInitializer(); } -#if DMDV2 // Default initializer is always a blit op = TOKblit; -#endif } if (init) @@ -1039,7 +1036,7 @@ Expression *e1 = new VarExp(loc, this); Type *t = type->toBasetype(); - if (t->ty == Tsarray) + if (t->ty == Tsarray && !(storage_class & (STCref | STCout))) { ei->exp = ei->exp->semantic(sc); if (!ei->exp->implicitConvTo(type)) @@ -1167,7 +1164,7 @@ e = e->optimize(WANTvalue | WANTinterpret); else e = e->optimize(WANTvalue); - if (e->op == TOKint64 || e->op == TOKstring) + if (e->op == TOKint64 || e->op == TOKstring || e->op == TOKfloat64) { ei->exp = e; // no errors, keep result }