Lines Matching refs:fes
1601 bool inferAggregate(ForeachStatement *fes, Scope *sc, Dsymbol *&sapply)
1603 //printf("inferAggregate(%s)\n", fes->aggr->toChars());
1604 Identifier *idapply = (fes->op == TOKforeach) ? Id::apply : Id::applyReverse;
1605 Identifier *idfront = (fes->op == TOKforeach) ? Id::Ffront : Id::Fback;
1609 Expression *aggr = fes->aggr;
1647 if (fes->aggr->op != TOKtype)
1649 Expression *rinit = new ArrayExp(fes->aggr->loc, fes->aggr);
1692 fes->aggr = aggr;
1705 bool inferApplyArgTypes(ForeachStatement *fes, Scope *sc, Dsymbol *&sapply)
1707 if (!fes->parameters || !fes->parameters->dim)
1712 for (size_t u = 0; u < fes->parameters->dim; u++)
1714 Parameter *p = (*fes->parameters)[u];
1717 p->type = p->type->semantic(fes->loc, sc);
1723 Type *tab = fes->aggr->type->toBasetype();
1725 ethis = fes->aggr;
1727 { assert(tab->ty == Tdelegate && fes->aggr->op == TOKdelegate);
1728 ethis = ((DelegateExp *)fes->aggr)->e1;
1738 sapply = inferApplyArgTypesX(ethis, fd, fes->parameters);
1745 for (size_t u = 0; u < fes->parameters->dim; u++)
1747 Parameter *p = (*fes->parameters)[u];
1754 Parameter *p = (*fes->parameters)[0];
1755 Type *taggr = fes->aggr->type;
1763 if (fes->parameters->dim == 2)
1770 p = (*fes->parameters)[1];
1783 if (fes->parameters->dim == 2)
1792 p = (*fes->parameters)[1];
1811 if (fes->parameters->dim == 1)
1817 Identifier *id = (fes->op == TOKforeach) ? Id::Ffront : Id::Fback;
1843 if (!inferApplyArgTypesY((TypeFunction *)tab->nextOf(), fes->parameters))