Mercurial > projects > ldc
comparison dmd/statement.c @ 108:288fe1029e1f trunk
[svn r112] Fixed 'case 1,2,3:' style case statements.
Fixed a bunch of bugs with return/break/continue in loops.
Fixed support for the DMDFE hidden implicit return value variable. This can be needed for some foreach statements where the loop body is converted to a nested delegate, but also possibly returns from the function.
Added std.math to phobos.
Added AA runtime support code, done ground work for implementing AAs.
Several other bugfixes.
author | lindquist |
---|---|
date | Tue, 20 Nov 2007 05:29:20 +0100 |
parents | 70d6113eeb8c |
children | 0e28624814e8 |
comparison
equal
deleted
inserted
replaced
107:3efbcc81ba45 | 108:288fe1029e1f |
---|---|
1435 ec = new VarExp(0, fdapply); | 1435 ec = new VarExp(0, fdapply); |
1436 Expressions *exps = new Expressions(); | 1436 Expressions *exps = new Expressions(); |
1437 exps->push(aggr); | 1437 exps->push(aggr); |
1438 size_t keysize = taa->key->size(); | 1438 size_t keysize = taa->key->size(); |
1439 keysize = (keysize + 3) & ~3; | 1439 keysize = (keysize + 3) & ~3; |
1440 exps->push(new IntegerExp(0, keysize, Type::tint32)); | 1440 exps->push(new IntegerExp(0, keysize, Type::tsize_t)); |
1441 exps->push(flde); | 1441 exps->push(flde); |
1442 e = new CallExp(loc, ec, exps); | 1442 e = new CallExp(loc, ec, exps); |
1443 e->type = Type::tindex; // don't run semantic() on e | 1443 e->type = Type::tindex; // don't run semantic() on e |
1444 } | 1444 } |
1445 else if (tab->ty == Tarray || tab->ty == Tsarray) | 1445 else if (tab->ty == Tarray || tab->ty == Tsarray) |