http://d.puremagic.com/issues/show_bug.cgi?id=5131
Don clugd...@yahoo.com.au changed:
What|Removed |Added
Keywords||patch
--- Comment #1 from Don clugd...@yahoo.com.au 2010-10-31 00:58:35 PDT ---
With val[key] = e2, the temporary variable needs to be of typeof(val), not
typeof(e2).
PATCH:
expression.c, AssignExp::semantic(), line 8974.
Expression *e = op_overload(sc);
if (e e1-op == TOKindex
((IndexExp *)e1)-e1-type-toBasetype()-ty == Taarray)
{
// Deal with AAs (Bugzilla 2451)
// Rewrite as:
-// e1 = (typeof(e2) tmp = void, tmp = e2, tmp);
+// e1 = (typeof(aa.value) tmp = void, tmp = e2, tmp);
+Type * aaValueType = ((TypeAArray *)((IndexExp
*)e1)-e1-type-toBasetype())-next;
Identifier *id = Lexer::uniqueId(__aatmp);
-VarDeclaration *v = new VarDeclaration(loc, e2-type,
id, new VoidInitializer(NULL));
+VarDeclaration *v = new VarDeclaration(loc, aaValueType,
id, new VoidInitializer(NULL));
v-storage_class |= STCctfe;
Expression *de = new DeclarationExp(loc, v);
VarExp *ve = new VarExp(loc, v);
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---