示例#1
0
 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
  }