int SliceExp::apply(fp_t fp, void *param) { return e1->apply(fp, param) || condApply(lwr, fp, param) || condApply(upr, fp, param) || (*fp)(this, param); }
int NewAnonClassExp::apply(int (*fp)(Expression *, void *), void *param) { //printf("NewAnonClassExp::apply(): %s\n", toChars()); return condApply(thisexp, fp, param) || condApply(newargs, fp, param) || condApply(arguments, fp, param) || (*fp)(this, param); }
int NewExp::apply(apply_fp_t fp, void *param) { //printf("NewExp::apply(): %s\n", toChars()); return condApply(thisexp, fp, param) || condApply(newargs, fp, param) || condApply(arguments, fp, param) || (*fp)(this, param); }
bool TryCatchStatement::apply(fp_t fp, void *param) { bool r = condApply(body, fp, param); if (r) return r; for (size_t i = 0; i < catches->dim; i++) { Catch *c = (*catches)[i]; bool r = condApply(c->handler, fp, param); if (r) return r; } return (*fp)(this, param); }
int ArrayExp::apply(fp_t fp, void *param) { //printf("ArrayExp::apply(fp_t fp, void *param): %s\n", toChars()); return e1->apply(fp, param) || condApply(arguments, fp, param) || (*fp)(this, param); }
int AssertExp::apply(fp_t fp, void *param) { //printf("CallExp::apply(fp_t fp, void *param): %s\n", toChars()); return e1->apply(fp, param) || condApply(msg, fp, param) || (*fp)(this, param); }
int StructLiteralExp::apply(fp_t fp, void *param) { if(stageflags & stageApply) return 0; int old = stageflags; stageflags |= stageApply; int ret = condApply(elements, fp, param) || (*fp)(this, param); stageflags = old; return ret; }
bool UnrolledLoopStatement::apply(fp_t fp, void *param) { for (size_t i = 0; i < statements->dim; i++) { Statement *s = (*statements)[i]; bool r = condApply(s, fp, param); if (r) return r; } return (*fp)(this, param); }
bool ForeachRangeStatement::apply(fp_t fp, void *param) { return condApply(body, fp, param) || (*fp)(this, param); }
bool SynchronizedStatement::apply(fp_t fp, void *param) { return condApply(body, fp, param) || (*fp)(this, param); }
int TupleExp::apply(fp_t fp, void *param) { return (e0 ? (*fp)(e0, param) : 0) || condApply(exps, fp, param) || (*fp)(this, param); }
int AssocArrayLiteralExp::apply(fp_t fp, void *param) { return condApply(keys, fp, param) || condApply(values, fp, param) || (*fp)(this, param); }
int ArrayLiteralExp::apply(fp_t fp, void *param) { return condApply(elements, fp, param) || (*fp)(this, param); }
bool TryFinallyStatement::apply(fp_t fp, void *param) { return condApply(body, fp, param) || condApply(finalbody, fp, param) || (*fp)(this, param); }
bool ConditionalStatement::apply(fp_t fp, void *param) { return condApply(ifbody, fp, param) || condApply(elsebody, fp, param) || (*fp)(this, param); }
bool ForStatement::apply(fp_t fp, void *param) { return condApply(init, fp, param) || condApply(body, fp, param) || (*fp)(this, param); }
bool WhileStatement::apply(fp_t fp, void *param) { return condApply(body, fp, param) || (*fp)(this, param); }
bool ScopeStatement::apply(fp_t fp, void *param) { return condApply(statement, fp, param) || (*fp)(this, param); }