Type tupleFromParameterList() { if (params.getParameters().isEmpty()) { return n.getUnit().getEmptyType(); } List<Type> types = new ArrayList<>(params.getParameters().size()); int firstDefaulted = -1; int count = 0; for (Tree.Parameter p : params.getParameters()) { types.add(p.getParameterModel().getType()); if (p.getParameterModel().isDefaulted()) firstDefaulted = count; count++; } return n.getUnit() .getTupleType( types, params .getParameters() .get(params.getParameters().size() - 1) .getParameterModel() .isSequenced(), params .getParameters() .get(params.getParameters().size() - 1) .getParameterModel() .isAtLeastOne(), firstDefaulted); }
@Override public void visit(Tree.Parameter that) { super.visit(that); if (that.getParameterModel().getModel() == declaration) { specify(); } }
@Override public void visit(Tree.Parameter p) { if (annotationConstructor != null) { AnnotationConstructorParameter acp = new AnnotationConstructorParameter(); acp.setParameter(p.getParameterModel()); instantiation.getConstructorParameters().add(acp); push(acp); // super.visit(p); Tree.SpecifierOrInitializerExpression defaultArgument = Decl.getDefaultArgument(p); if (defaultArgument != null) { defaultedParameter(defaultArgument); } pop(); Tree.ValueParameterDeclaration vp; } // Ignore statements in parameters }