aboutsummaryrefslogtreecommitdiff
path: root/gcc/d/dmd/dinterpret.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/d/dmd/dinterpret.c')
-rw-r--r--gcc/d/dmd/dinterpret.c170
1 files changed, 85 insertions, 85 deletions
diff --git a/gcc/d/dmd/dinterpret.c b/gcc/d/dmd/dinterpret.c
index c900d9e..7c7238d 100644
--- a/gcc/d/dmd/dinterpret.c
+++ b/gcc/d/dmd/dinterpret.c
@@ -129,7 +129,7 @@ CtfeStack::CtfeStack() : framepointer(0), maxStackPointer(0)
size_t CtfeStack::stackPointer()
{
- return values.dim;
+ return values.length;
}
Expression *CtfeStack::getThis()
@@ -153,12 +153,12 @@ void CtfeStack::startFrame(Expression *thisexp)
void CtfeStack::endFrame()
{
- size_t oldframe = (size_t)(frames[frames.dim-1]);
- localThis = savedThis[savedThis.dim-1];
+ size_t oldframe = (size_t)(frames[frames.length-1]);
+ localThis = savedThis[savedThis.length-1];
popAll(framepointer);
framepointer = oldframe;
- frames.setDim(frames.dim - 1);
- savedThis.setDim(savedThis.dim -1);
+ frames.setDim(frames.length - 1);
+ savedThis.setDim(savedThis.length -1);
}
bool CtfeStack::isInCurrentFrame(VarDeclaration *v)
@@ -173,7 +173,7 @@ Expression *CtfeStack::getValue(VarDeclaration *v)
if ((v->isDataseg() || v->storage_class & STCmanifest) && !v->isCTFE())
{
assert(v->ctfeAdrOnStack >= 0 &&
- v->ctfeAdrOnStack < (int)globalValues.dim);
+ v->ctfeAdrOnStack < (int)globalValues.length);
return globalValues[v->ctfeAdrOnStack];
}
assert(v->ctfeAdrOnStack >= 0 && v->ctfeAdrOnStack < (int)stackPointer());
@@ -198,7 +198,7 @@ void CtfeStack::push(VarDeclaration *v)
return;
}
savedId.push((void *)(size_t)(v->ctfeAdrOnStack));
- v->ctfeAdrOnStack = (int)values.dim;
+ v->ctfeAdrOnStack = (int)values.length;
vars.push(v);
values.push(NULL);
}
@@ -209,7 +209,7 @@ void CtfeStack::pop(VarDeclaration *v)
assert(!(v->storage_class & (STCref | STCout)));
int oldid = v->ctfeAdrOnStack;
v->ctfeAdrOnStack = (int)(size_t)(savedId[oldid]);
- if (v->ctfeAdrOnStack == (int)values.dim - 1)
+ if (v->ctfeAdrOnStack == (int)values.length - 1)
{
values.pop();
vars.pop();
@@ -221,8 +221,8 @@ void CtfeStack::popAll(size_t stackpointer)
{
if (stackPointer() > maxStackPointer)
maxStackPointer = stackPointer();
- assert(values.dim >= stackpointer);
- for (size_t i = stackpointer; i < values.dim; ++i)
+ assert(values.length >= stackpointer);
+ for (size_t i = stackpointer; i < values.length; ++i)
{
VarDeclaration *v = vars[i];
v->ctfeAdrOnStack = (int)(size_t)(savedId[i]);
@@ -235,7 +235,7 @@ void CtfeStack::popAll(size_t stackpointer)
void CtfeStack::saveGlobalConstant(VarDeclaration *v, Expression *e)
{
assert(v->_init && (v->isConst() || v->isImmutable() || v->storage_class & STCmanifest) && !v->isCTFE());
- v->ctfeAdrOnStack = (int)globalValues.dim;
+ v->ctfeAdrOnStack = (int)globalValues.length;
globalValues.push(e);
}
@@ -342,7 +342,7 @@ struct CompiledCtfeFunction
{
if (!td->objects)
return;
- for (size_t i= 0; i < td->objects->dim; ++i)
+ for (size_t i= 0; i < td->objects->length; ++i)
{
RootObject *o = td->objects->tdata()[i];
Expression *ex = isExpression(o);
@@ -406,7 +406,7 @@ public:
void visit(CompoundStatement *s)
{
- for (size_t i = 0; i < s->statements->dim; i++)
+ for (size_t i = 0; i < s->statements->length; i++)
{
Statement *sx = (*s->statements)[i];
if (sx)
@@ -416,7 +416,7 @@ public:
void visit(UnrolledLoopStatement *s)
{
- for (size_t i = 0; i < s->statements->dim; i++)
+ for (size_t i = 0; i < s->statements->length; i++)
{
Statement *sx = (*s->statements)[i];
if (sx)
@@ -481,7 +481,7 @@ public:
ccf->onExpression(s->condition);
// Note that the body contains the the Case and Default
// statements, so we only need to compile the expressions
- for (size_t i = 0; i < s->cases->dim; i++)
+ for (size_t i = 0; i < s->cases->length; i++)
{
ccf->onExpression((*s->cases)[i]->exp);
}
@@ -546,7 +546,7 @@ public:
{
if (s->_body)
ctfeCompile(s->_body);
- for (size_t i = 0; i < s->catches->dim; i++)
+ for (size_t i = 0; i < s->catches->length; i++)
{
Catch *ca = (*s->catches)[i];
if (ca->var)
@@ -616,7 +616,7 @@ void ctfeCompile(FuncDeclaration *fd)
{
Type *tb = fd->type->toBasetype();
assert(tb->ty == Tfunction);
- for (size_t i = 0; i < fd->parameters->dim; i++)
+ for (size_t i = 0; i < fd->parameters->length; i++)
{
VarDeclaration *v = (*fd->parameters)[i];
fd->ctfeCode->onDeclaration(v);
@@ -700,7 +700,7 @@ Expression *ctfeInterpretForPragmaMsg(Expression *e)
TupleExp *tup = (TupleExp *)e;
Expressions *expsx = NULL;
- for (size_t i = 0; i < tup->exps->dim; ++i)
+ for (size_t i = 0; i < tup->exps->length; ++i)
{
Expression *g = (*tup->exps)[i];
Expression *h = g;
@@ -710,8 +710,8 @@ Expression *ctfeInterpretForPragmaMsg(Expression *e)
if (!expsx)
{
expsx = new Expressions();
- expsx->setDim(tup->exps->dim);
- for (size_t j = 0; j < tup->exps->dim; j++)
+ expsx->setDim(tup->exps->length);
+ for (size_t j = 0; j < tup->exps->length; j++)
(*expsx)[j] = (*tup->exps)[j];
}
(*expsx)[i] = h;
@@ -761,7 +761,7 @@ static Expression *interpretFunction(UnionExp *pue, FuncDeclaration *fd, InterSt
assert(tb->ty == Tfunction);
TypeFunction *tf = (TypeFunction *)tb;
if (tf->varargs && arguments &&
- ((fd->parameters && arguments->dim != fd->parameters->dim) || (!fd->parameters && arguments->dim)))
+ ((fd->parameters && arguments->length != fd->parameters->length) || (!fd->parameters && arguments->length)))
{
fd->error("C-style variadic functions are not yet implemented in CTFE");
return CTFEExp::cantexp;
@@ -785,8 +785,8 @@ static Expression *interpretFunction(UnionExp *pue, FuncDeclaration *fd, InterSt
// Place to hold all the arguments to the function while
// we are evaluating them.
Expressions eargs;
- size_t dim = arguments ? arguments->dim : 0;
- assert((fd->parameters ? fd->parameters->dim : 0) == dim);
+ size_t dim = arguments ? arguments->length : 0;
+ assert((fd->parameters ? fd->parameters->length : 0) == dim);
/* Evaluate all the arguments to the function,
* store the results in eargs[]
@@ -1045,7 +1045,7 @@ public:
if (istate->start == s)
istate->start = NULL;
- const size_t dim = s->statements ? s->statements->dim : 0;
+ const size_t dim = s->statements ? s->statements->length : 0;
for (size_t i = 0; i < dim; i++)
{
Statement *sx = (*s->statements)[i];
@@ -1060,7 +1060,7 @@ public:
if (istate->start == s)
istate->start = NULL;
- const size_t dim = s->statements ? s->statements->dim : 0;
+ const size_t dim = s->statements ? s->statements->length : 0;
for (size_t i = 0; i < dim; i++)
{
Statement *sx = (*s->statements)[i];
@@ -1200,7 +1200,7 @@ public:
// Check all members of an array for escaping local variables. Return false if error
static bool stopPointersEscapingFromArray(Loc loc, Expressions *elems)
{
- for (size_t i = 0; i < elems->dim; i++)
+ for (size_t i = 0; i < elems->length; i++)
{
Expression *m = (*elems)[i];
if (!m)
@@ -1237,7 +1237,7 @@ public:
result = interpret(pue, s->exp, istate, ctfeNeedLvalue);
return;
}
- if (tf->next && tf->next->ty == Tdelegate && istate->fd->closureVars.dim > 0)
+ if (tf->next && tf->next->ty == Tdelegate && istate->fd->closureVars.length > 0)
{
// To support this, we need to copy all the closure vars
// into the delegate literal.
@@ -1470,7 +1470,7 @@ public:
return;
Statement *scase = NULL;
- size_t dim = s->cases ? s->cases->dim : 0;
+ size_t dim = s->cases ? s->cases->length : 0;
for (size_t i = 0; i < dim; i++)
{
CaseStatement *cs = (*s->cases)[i];
@@ -1585,7 +1585,7 @@ public:
{
Expression *e = NULL;
e = interpret(pue, s->_body, istate);
- for (size_t i = 0; i < s->catches->dim; i++)
+ for (size_t i = 0; i < s->catches->length; i++)
{
if (e || !istate->start) // goto target was found
break;
@@ -1605,7 +1605,7 @@ public:
Type *extype = ex->thrown->originalClass()->type;
// Search for an appropriate catch clause.
- for (size_t i = 0; i < s->catches->dim; i++)
+ for (size_t i = 0; i < s->catches->length; i++)
{
Catch *ca = (*s->catches)[i];
Type *catype = ca->type;
@@ -2286,7 +2286,7 @@ public:
// Reserve stack space for all tuple members
if (!td->objects)
return;
- for (size_t i = 0; i < td->objects->dim; ++i)
+ for (size_t i = 0; i < td->objects->length; ++i)
{
RootObject * o = (*td->objects)[i];
Expression *ex = isExpression(o);
@@ -2366,7 +2366,7 @@ public:
{
// Check for static struct declarations, which aren't executable
AttribDeclaration *ad = e->declaration->isAttribDeclaration();
- if (ad && ad->decl && ad->decl->dim == 1)
+ if (ad && ad->decl && ad->decl->length == 1)
{
Dsymbol *sparent = (*ad->decl)[0];
if (sparent->isAggregateDeclaration() ||
@@ -2431,7 +2431,7 @@ public:
return;
Expressions *expsx = e->exps;
- for (size_t i = 0; i < expsx->dim; i++)
+ for (size_t i = 0; i < expsx->length; i++)
{
Expression *exp = (*expsx)[i];
Expression *ex = interpret(exp, istate);
@@ -2482,7 +2482,7 @@ public:
return;
Expressions *expsx = e->elements;
- size_t dim = expsx ? expsx->dim : 0;
+ size_t dim = expsx ? expsx->length : 0;
for (size_t i = 0; i < dim; i++)
{
Expression *exp = (*expsx)[i];
@@ -2521,7 +2521,7 @@ public:
{
// todo: all tuple expansions should go in semantic phase.
expandTuples(expsx);
- if (expsx->dim != dim)
+ if (expsx->length != dim)
{
e->error("CTFE internal error: invalid array literal");
result = CTFEExp::cantexp;
@@ -2554,7 +2554,7 @@ public:
Expressions *keysx = e->keys;
Expressions *valuesx = e->values;
- for (size_t i = 0; i < keysx->dim; i++)
+ for (size_t i = 0; i < keysx->length; i++)
{
Expression *ekey = (*keysx)[i];
Expression *evalue = (*valuesx)[i];
@@ -2581,7 +2581,7 @@ public:
expandTuples(keysx);
if (valuesx != e->values)
expandTuples(valuesx);
- if (keysx->dim != valuesx->dim)
+ if (keysx->length != valuesx->length)
{
e->error("CTFE internal error: invalid AA");
result = CTFEExp::cantexp;
@@ -2590,10 +2590,10 @@ public:
/* Remove duplicate keys
*/
- for (size_t i = 1; i < keysx->dim; i++)
+ for (size_t i = 1; i < keysx->length; i++)
{
Expression *ekey = (*keysx)[i - 1];
- for (size_t j = i; j < keysx->dim; j++)
+ for (size_t j = i; j < keysx->length; j++)
{
Expression *ekey2 = (*keysx)[j];
if (!ctfeEqual(e->loc, TOKequal, ekey, ekey2))
@@ -2635,13 +2635,13 @@ public:
return;
}
- size_t dim = e->elements ? e->elements->dim : 0;
+ size_t dim = e->elements ? e->elements->length : 0;
Expressions *expsx = e->elements;
- if (dim != e->sd->fields.dim)
+ if (dim != e->sd->fields.length)
{
// guaranteed by AggregateDeclaration.fill and TypeStruct.defaultInitLiteral
- assert(e->sd->isNested() && dim == e->sd->fields.dim - 1);
+ assert(e->sd->isNested() && dim == e->sd->fields.length - 1);
/* If a nested struct has no initialized hidden pointer,
* set it to null to match the runtime behaviour.
@@ -2653,7 +2653,7 @@ public:
expsx->push(ne);
++dim;
}
- assert(dim == e->sd->fields.dim);
+ assert(dim == e->sd->fields.length);
for (size_t i = 0; i < dim; i++)
{
@@ -2693,7 +2693,7 @@ public:
if (expsx != e->elements)
{
expandTuples(expsx);
- if (expsx->dim != e->sd->fields.dim)
+ if (expsx->length != e->sd->fields.length)
{
e->error("CTFE internal error: invalid struct literal");
result = CTFEExp::cantexp;
@@ -2723,7 +2723,7 @@ public:
return lenExpr;
size_t len = (size_t)(lenExpr->toInteger());
Type *elemType = ((TypeArray *)newtype)->next;
- if (elemType->ty == Tarray && argnum < (int)arguments->dim - 1)
+ if (elemType->ty == Tarray && argnum < (int)arguments->length - 1)
{
Expression *elem = recursivelyCreateArrayLiteral(pue, loc, elemType, istate,
arguments, argnum + 1);
@@ -2739,7 +2739,7 @@ public:
ae->ownedByCtfe = OWNEDctfe;
return ae;
}
- assert(argnum == (int)arguments->dim - 1);
+ assert(argnum == (int)arguments->length - 1);
if (elemType->ty == Tchar || elemType->ty == Twchar || elemType->ty == Tdchar)
{
const unsigned ch = (unsigned)elemType->defaultInitLiteral(loc)->toInteger();
@@ -2788,11 +2788,11 @@ public:
{
StructDeclaration *sd = ((TypeStruct *)e->newtype->toBasetype())->sym;
Expressions *exps = new Expressions();
- exps->reserve(sd->fields.dim);
+ exps->reserve(sd->fields.length);
if (e->arguments)
{
- exps->setDim(e->arguments->dim);
- for (size_t i = 0; i < exps->dim; i++)
+ exps->setDim(e->arguments->length);
+ for (size_t i = 0; i < exps->length; i++)
{
Expression *ex = (*e->arguments)[i];
ex = interpret(ex, istate);
@@ -2820,14 +2820,14 @@ public:
ClassDeclaration *cd = ((TypeClass *)e->newtype->toBasetype())->sym;
size_t totalFieldCount = 0;
for (ClassDeclaration *c = cd; c; c = c->baseClass)
- totalFieldCount += c->fields.dim;
+ totalFieldCount += c->fields.length;
Expressions *elems = new Expressions;
elems->setDim(totalFieldCount);
size_t fieldsSoFar = totalFieldCount;
for (ClassDeclaration *c = cd; c; c = c->baseClass)
{
- fieldsSoFar -= c->fields.dim;
- for (size_t i = 0; i < c->fields.dim; i++)
+ fieldsSoFar -= c->fields.length;
+ for (size_t i = 0; i < c->fields.length; i++)
{
VarDeclaration *v = c->fields[i];
if (v->inuse)
@@ -2891,7 +2891,7 @@ public:
if (e->newtype->toBasetype()->isscalar())
{
Expression *newval;
- if (e->arguments && e->arguments->dim)
+ if (e->arguments && e->arguments->length)
newval = (*e->arguments)[0];
else
newval = e->newtype->defaultInitLiteral(e->loc);
@@ -3634,7 +3634,7 @@ public:
if (!v->overlapped)
return;
- for (size_t i = 0; i < sle->sd->fields.dim; i++)
+ for (size_t i = 0; i < sle->sd->fields.length; i++)
{
VarDeclaration *v2 = sle->sd->fields[i];
if (v == v2 || !v->isOverlappedWith(v2))
@@ -3686,7 +3686,7 @@ public:
e->error("CTFE internal error: cannot find field %s in %s", v->toChars(), ex->toChars());
return CTFEExp::cantexp;
}
- assert(0 <= fieldi && fieldi < (int)sle->elements->dim);
+ assert(0 <= fieldi && fieldi < (int)sle->elements->length);
// If it's a union, set all other members of this union to void
stompOverlappedFields(sle, v);
@@ -3776,10 +3776,10 @@ public:
Expressions *oldelems = ((ArrayLiteralExp *)oldval)->elements;
Expressions *newelems = ((ArrayLiteralExp *)newval)->elements;
- assert(oldelems->dim == newelems->dim);
+ assert(oldelems->length == newelems->length);
Type *elemtype = oldval->type->nextOf();
- for (size_t i = 0; i < newelems->dim; i++)
+ for (size_t i = 0; i < newelems->length; i++)
{
Expression *oldelem = (*oldelems)[i];
Expression *newelem = paintTypeOntoLiteral(elemtype, (*newelems)[i]);
@@ -3915,7 +3915,7 @@ public:
if (e1->op == TOKarrayliteral)
{
lowerbound = 0;
- upperbound = ((ArrayLiteralExp *)e1)->elements->dim;
+ upperbound = ((ArrayLiteralExp *)e1)->elements->length;
}
else if (e1->op == TOKstring)
{
@@ -4126,7 +4126,7 @@ public:
Expressions *newelems = ((ArrayLiteralExp *)newval)->elements;
Type *elemtype = existingAE->type->nextOf();
bool needsPostblit = e->op != TOKblit && e->e2->isLvalue();
- for (size_t j = 0; j < newelems->dim; j++)
+ for (size_t j = 0; j < newelems->length; j++)
{
Expression *newelem = (*newelems)[j];
newelem = paintTypeOntoLiteral(elemtype, newelem);
@@ -4156,7 +4156,7 @@ public:
Expression *assignTo(ArrayLiteralExp *ae)
{
- return assignTo(ae, 0, ae->elements->dim);
+ return assignTo(ae, 0, ae->elements->length);
}
Expression *assignTo(ArrayLiteralExp *ae, size_t lwr, size_t upr)
@@ -4643,7 +4643,7 @@ public:
if (fd->ident == Id::__ArrayPostblit ||
fd->ident == Id::__ArrayDtor)
{
- assert(e->arguments->dim == 1);
+ assert(e->arguments->length == 1);
Expression *ea = (*e->arguments)[0];
//printf("1 ea = %s %s\n", ea->type->toChars(), ea->toChars());
if (ea->op == TOKslice)
@@ -4918,7 +4918,7 @@ public:
// Convert literal __vector(int) -> __vector([array])
Expressions *elements = new Expressions();
elements->setDim(e->dim);
- for (size_t i = 0; i < elements->dim; i++)
+ for (size_t i = 0; i < elements->length; i++)
(*elements)[i] = copyLiteral(e->e1).copy();
TypeSArray *type = NULL;
if (e->type->ty == Tvector)
@@ -5506,7 +5506,7 @@ public:
ale->ownedByCtfe = OWNEDctfe;
// Bugzilla 14686
- for (size_t i = 0; i < ale->elements->dim; i++)
+ for (size_t i = 0; i < ale->elements->length; i++)
{
Expression *ex = evaluatePostblit(istate, (*ale->elements)[i]);
if (exceptionOrCant(ex))
@@ -5614,7 +5614,7 @@ public:
if (sd->dtor)
{
ArrayLiteralExp *ale = (ArrayLiteralExp *)result;
- for (size_t i = 0; i < ale->elements->dim; i++)
+ for (size_t i = 0; i < ale->elements->length; i++)
{
Expression *el = (*ale->elements)[i];
result = interpretFunction(pue, sd->dtor, istate, NULL, el);
@@ -5728,7 +5728,7 @@ public:
{
ArrayLiteralExp *ale = (ArrayLiteralExp *)ie->e1;
const size_t indx = (size_t)ie->e2->toInteger();
- if (indx < ale->elements->dim)
+ if (indx < ale->elements->length)
{
Expression *xx = (*ale->elements)[indx];
if (xx)
@@ -6121,7 +6121,7 @@ public:
Expressions *keysx = aae->keys;
Expressions *valuesx = aae->values;
size_t removed = 0;
- for (size_t j = 0; j < valuesx->dim; ++j)
+ for (size_t j = 0; j < valuesx->length; ++j)
{
Expression *ekey = (*keysx)[j];
int eq = ctfeEqual(e->loc, TOKequal, ekey, index);
@@ -6133,8 +6133,8 @@ public:
(*valuesx)[j - removed] = (*valuesx)[j];
}
}
- valuesx->dim = valuesx->dim - removed;
- keysx->dim = keysx->dim - removed;
+ valuesx->length = valuesx->length - removed;
+ keysx->length = keysx->length - removed;
new(pue) IntegerExp(e->loc, removed ? 1 : 0, Type::tbool);
result = pue->exp();
}
@@ -6311,7 +6311,7 @@ static bool isVoid(Expression *e, bool checkArray = false)
// or is an array literal or struct literal of void elements.
bool isEntirelyVoid(Expressions *elems)
{
- for (size_t i = 0; i < elems->dim; i++)
+ for (size_t i = 0; i < elems->length; i++)
{
Expression *e = (*elems)[i];
// It can be NULL for performance reasons,
@@ -6325,7 +6325,7 @@ bool isEntirelyVoid(Expressions *elems)
// Scrub all members of an array. Return false if error
Expression *scrubArray(Loc loc, Expressions *elems, bool structlit)
{
- for (size_t i = 0; i < elems->dim; i++)
+ for (size_t i = 0; i < elems->length; i++)
{
Expression *e = (*elems)[i];
// It can be NULL for performance reasons,
@@ -6421,7 +6421,7 @@ Expression *scrubCacheValue(Expression *e)
Expression *scrubArrayCache(Expressions *elems)
{
- for (size_t i = 0; i < elems->dim; i++)
+ for (size_t i = 0; i < elems->length; i++)
{
Expression *e = (*elems)[i];
(*elems)[i] = scrubCacheValue(e);
@@ -6453,7 +6453,7 @@ static Expression *interpret_length(UnionExp *pue, InterState *istate, Expressio
return earg;
dinteger_t len = 0;
if (earg->op == TOKassocarrayliteral)
- len = ((AssocArrayLiteralExp *)earg)->keys->dim;
+ len = ((AssocArrayLiteralExp *)earg)->keys->length;
else
assert(earg->op == TOKnull);
new(pue) IntegerExp(earg->loc, len, Type::tsize_t);
@@ -6515,7 +6515,7 @@ Expression *interpret_dup(UnionExp *pue, InterState *istate, Expression *earg)
return NULL;
assert(earg->op == TOKassocarrayliteral);
AssocArrayLiteralExp *aae = (AssocArrayLiteralExp *)copyLiteral(earg).copy();
- for (size_t i = 0; i < aae->keys->dim; i++)
+ for (size_t i = 0; i < aae->keys->length; i++)
{
if (Expression *e = evaluatePostblit(istate, (*aae->keys)[i]))
return e;
@@ -6551,7 +6551,7 @@ Expression *interpret_aaApply(UnionExp *pue, InterState *istate, Expression *aa,
assert(fd && fd->fbody);
assert(fd->parameters);
- size_t numParams = fd->parameters->dim;
+ size_t numParams = fd->parameters->length;
assert(numParams == 1 || numParams == 2);
Parameter *fparam = Parameter::getNth(((TypeFunction *)fd->type)->parameters, numParams - 1);
@@ -6561,11 +6561,11 @@ Expression *interpret_aaApply(UnionExp *pue, InterState *istate, Expression *aa,
args.setDim(numParams);
AssocArrayLiteralExp *ae = (AssocArrayLiteralExp *)aa;
- if (!ae->keys || ae->keys->dim == 0)
+ if (!ae->keys || ae->keys->length == 0)
return new IntegerExp(deleg->loc, 0, Type::tsize_t);
Expression *eresult;
- for (size_t i = 0; i < ae->keys->dim; ++i)
+ for (size_t i = 0; i < ae->keys->length; ++i)
{
Expression *ekey = (*ae->keys)[i];
Expression *evalue = (*ae->values)[i];
@@ -6610,7 +6610,7 @@ static Expression *foreachApplyUtf(UnionExp *pue, InterState *istate, Expression
assert(fd && fd->fbody);
assert(fd->parameters);
- size_t numParams = fd->parameters->dim;
+ size_t numParams = fd->parameters->length;
assert(numParams == 1 || numParams == 2);
Type *charType = (*fd->parameters)[numParams-1]->type;
Type *indexType = numParams == 2 ? (*fd->parameters)[0]->type
@@ -6856,14 +6856,14 @@ Expression *evaluateIfBuiltin(UnionExp *pue, InterState *istate, Loc loc,
FuncDeclaration *fd, Expressions *arguments, Expression *pthis)
{
Expression *e = NULL;
- size_t nargs = arguments ? arguments->dim : 0;
+ size_t nargs = arguments ? arguments->length : 0;
if (!pthis)
{
if (isBuiltin(fd) == BUILTINyes)
{
Expressions args;
args.setDim(nargs);
- for (size_t i = 0; i < args.dim; i++)
+ for (size_t i = 0; i < args.length; i++)
{
Expression *earg = (*arguments)[i];
earg = interpret(earg, istate);
@@ -6906,9 +6906,9 @@ Expression *evaluateIfBuiltin(UnionExp *pue, InterState *istate, Loc loc,
else // (nargs == 3)
{
if (id == Id::_aaApply)
- return interpret_aaApply(pue, istate, firstarg, (Expression *)(arguments->data[2]));
+ return interpret_aaApply(pue, istate, firstarg, (*arguments)[2]);
if (id == Id::_aaApply2)
- return interpret_aaApply(pue, istate, firstarg, (Expression *)(arguments->data[2]));
+ return interpret_aaApply(pue, istate, firstarg, (*arguments)[2]);
}
}
}
@@ -6919,8 +6919,8 @@ Expression *evaluateIfBuiltin(UnionExp *pue, InterState *istate, Loc loc,
// At present, the constructors just copy their arguments into the struct.
// But we might need some magic if stack tracing gets added to druntime.
StructLiteralExp *se = ((ClassReferenceExp *)pthis)->value;
- assert(arguments->dim <= se->elements->dim);
- for (size_t i = 0; i < arguments->dim; ++i)
+ assert(arguments->length <= se->elements->length);
+ for (size_t i = 0; i < arguments->length; ++i)
{
e = interpret((*arguments)[i], istate);
if (exceptionOrCantInterpret(e))
@@ -6976,7 +6976,7 @@ Expression *evaluatePostblit(InterState *istate, Expression *e)
if (e->op == TOKarrayliteral)
{
ArrayLiteralExp *ale = (ArrayLiteralExp *)e;
- for (size_t i = 0; i < ale->elements->dim; i++)
+ for (size_t i = 0; i < ale->elements->length; i++)
{
e = evaluatePostblit(istate, (*ale->elements)[i]);
if (e)
@@ -7012,7 +7012,7 @@ Expression *evaluateDtor(InterState *istate, Expression *e)
if (e->op == TOKarrayliteral)
{
ArrayLiteralExp *alex = (ArrayLiteralExp *)e;
- for (size_t i = alex->elements->dim; 0 < i--; )
+ for (size_t i = alex->elements->length; 0 < i--; )
e = evaluateDtor(istate, (*alex->elements)[i]);
}
else if (e->op == TOKstructliteral)