com.sun.tools.javac.util.List.size()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(11.7k)|赞(0)|评价(0)|浏览(123)

本文整理了Java中com.sun.tools.javac.util.List.size()方法的一些代码示例,展示了List.size()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。List.size()方法的具体详情如下:
包路径:com.sun.tools.javac.util.List
类名称:List
方法名:size

List.size介绍

暂无

代码示例

代码示例来源:origin: uber/NullAway

@Override
public ImmutableSet<Integer> onUnannotatedInvocationGetExplicitlyNullablePositions(
  Context context,
  Symbol.MethodSymbol methodSymbol,
  ImmutableSet<Integer> explicitlyNullablePositions) {
 HashSet<Integer> positions = new HashSet<Integer>();
 positions.addAll(explicitlyNullablePositions);
 for (int i = 0; i < methodSymbol.getParameters().size(); ++i) {
  if (Nullness.paramHasNullableAnnotation(methodSymbol, i)) {
   positions.add(i);
  }
 }
 return ImmutableSet.copyOf(positions);
}

代码示例来源:origin: uber/NullAway

@Override
public ImmutableSet<Integer> onUnannotatedInvocationGetNonNullPositions(
  NullAway analysis,
  VisitorState state,
  Symbol.MethodSymbol methodSymbol,
  List<? extends ExpressionTree> actualParams,
  ImmutableSet<Integer> nonNullPositions) {
 HashSet<Integer> positions = new HashSet<Integer>();
 positions.addAll(nonNullPositions);
 for (int i = 0; i < methodSymbol.getParameters().size(); ++i) {
  if (Nullness.paramHasNonNullAnnotation(methodSymbol, i)) {
   positions.add(i);
  }
 }
 return ImmutableSet.copyOf(positions);
}

代码示例来源:origin: google/error-prone

@Nullable
private Type visitMethodInvocationOrNewClass(
  List<? extends ExpressionTree> arguments, MethodSymbol sym, Type type) {
 int idx = arguments.indexOf(current);
 if (idx == -1) {
  return null;
 }
 if (type.getParameterTypes().size() <= idx) {
  if (!sym.isVarArgs()) {
   if ((sym.flags() & Flags.HYPOTHETICAL) != 0) {
    // HYPOTHETICAL is also used for signature-polymorphic methods
    return null;
   }
   throw new IllegalStateException(
     String.format(
       "saw %d formal parameters and %d actual parameters on non-varargs method %s\n",
       type.getParameterTypes().size(), arguments.size(), sym));
  }
  idx = type.getParameterTypes().size() - 1;
 }
 Type argType = type.getParameterTypes().get(idx);
 if (sym.isVarArgs() && idx == type.getParameterTypes().size() - 1) {
  argType = state.getTypes().elemtype(argType);
 }
 return argType;
}

代码示例来源:origin: google/error-prone

private static int caseEndPosition(VisitorState state, JCTree.JCCase caseTree) {
  // if the statement group is a single block statement, handle fall through comments at the
  // end of the block
  if (caseTree.stats.size() == 1) {
   JCTree.JCStatement only = getOnlyElement(caseTree.stats);
   if (only.hasTag(JCTree.Tag.BLOCK)) {
    BlockTree blockTree = (BlockTree) only;
    return blockTree.getStatements().isEmpty()
      ? ((JCTree) blockTree).getStartPosition()
      : state.getEndPosition(getLast(blockTree.getStatements()));
   }
  }
  return state.getEndPosition(caseTree);
 }
}

代码示例来源:origin: google/error-prone

/**
  * Extracts the appropriate type argument from a specific supertype of the given {@code type}.
  * This handles the case when a subtype has different type arguments than the expected type. For
  * example, {@code ClassToInstanceMap<T>} implements {@code Map<Class<? extends T>, T>}.
  *
  * @param type the (sub)type from which to extract the type argument
  * @param superTypeSym the symbol of the supertype on which the type parameter is defined
  * @param typeArgIndex the index of the type argument to extract from the supertype
  * @param types the {@link Types} utility class from the {@link VisitorState}
  * @return the type argument, if defined, or null otherwise
  */
 @Nullable
 protected static final Type extractTypeArgAsMemberOfSupertype(
   Type type, Symbol superTypeSym, int typeArgIndex, Types types) {
  Type collectionType = types.asSuper(type, superTypeSym);
  if (collectionType == null) {
   return null;
  }
  com.sun.tools.javac.util.List<Type> tyargs = collectionType.getTypeArguments();
  if (tyargs.size() <= typeArgIndex) {
   // Collection is raw, nothing we can do.
   return null;
  }

  return tyargs.get(typeArgIndex);
 }
}

代码示例来源:origin: google/error-prone

@Override
 public Type get(VisitorState state) {
  Type type = typeSupplier.get(state);
  if (type.getTypeArguments().size() <= n) {
   return state.getSymtab().objectType;
  }
  return type.getTypeArguments().get(n);
 }
};

代码示例来源:origin: google/error-prone

@Override
 public Type get(VisitorState state) {
  JCExpression jcExpression = (JCExpression) expressionSupplier.get(state);
  if (jcExpression.type.getTypeArguments().size() <= n) {
   return state.getSymtab().objectType;
  }
  return jcExpression.type.getTypeArguments().get(n);
 }
};

代码示例来源:origin: google/error-prone

for (int i = 0; i < sym.getParameters().size(); ++i) {
 VarSymbol param = sym.getParameters().get(i);
 if (param.equals(sym.getParameters().last()) && sym.isVarArgs()) {

代码示例来源:origin: google/error-prone

@Override
 public Description matchMethodInvocation(
   MethodInvocationTree methodInvocationTree, VisitorState state) {
  if (!MATCHER.matches(methodInvocationTree, state)) {
   return Description.NO_MATCH;
  }
  if (methodInvocationTree.getArguments().size() % 2 == 0) {
   return Description.NO_MATCH;
  }
  List<? extends ExpressionTree> arguments = methodInvocationTree.getArguments();

  MethodSymbol methodSymbol = getSymbol(methodInvocationTree);
  if (methodSymbol == null || !methodSymbol.isVarArgs()) {
   return Description.NO_MATCH;
  }
  Type varArgsArrayType = getLast(methodSymbol.params()).type;
  Type lastArgType = ASTHelpers.getType(getLast(arguments));
  if (arguments.size() == methodSymbol.params().size()
    && ASTHelpers.isSameType(varArgsArrayType, lastArgType, state)) {
   return Description.NO_MATCH;
  }
  return describeMatch(methodInvocationTree);
 }
}

代码示例来源:origin: google/error-prone

@Override
 public boolean matches(ExpressionTree t, VisitorState state) {
  Type type = ((JCTree) t).type;
  // Expect a class type.
  if (!(type instanceof ClassType)) {
   return false;
  }
  // Expect one type argument, the type of the JUnit class runner to use.
  com.sun.tools.javac.util.List<Type> typeArgs = ((ClassType) type).getTypeArguments();
  if (typeArgs.size() != 1) {
   return false;
  }
  Type runnerType = typeArgs.get(0);
  for (String testRunner : TEST_RUNNERS) {
   Symbol parent = state.getSymbolFromString(testRunner);
   if (parent == null) {
    continue;
   }
   if (runnerType.tsym.isSubClass(parent, state.getTypes())) {
    return true;
   }
  }
  return false;
 }
};

代码示例来源:origin: google/error-prone

private Description check(Tree tree, List<? extends Tree> arguments, VisitorState state) {
 Symbol sym = ASTHelpers.getSymbol(tree);
 if (!(sym instanceof MethodSymbol)) {
  return Description.NO_MATCH;
 }
 MethodSymbol methodSymbol = (MethodSymbol) sym;
 int expected = methodSymbol.getTypeParameters().size();
 int actual = arguments.size();
 if (actual <= expected) {
  return Description.NO_MATCH;
 }
 for (MethodSymbol superMethod : ASTHelpers.findSuperMethods(methodSymbol, state.getTypes())) {
  if (!superMethod.getTypeParameters().isEmpty()) {
   // Exempt methods that override generic methods to preserve the substitutability of the
   // two types.
   return Description.NO_MATCH;
  }
 }
 return describeMatch(tree, buildFix(tree, arguments, state));
}

代码示例来源:origin: google/error-prone

@Override
 public boolean apply(MethodSymbol methodSymbol) {
  return !methodSymbol.isStatic()
    && ((methodSymbol.flags() & Flags.SYNTHETIC) == 0)
    && ((methodSymbol.flags() & Flags.ABSTRACT) == 0)
    && methodSymbol.getParameters().size() == 1
    && types.isSameType(
      methodSymbol.getParameters().get(0).type, state.getSymtab().objectType);
 }
};

代码示例来源:origin: google/error-prone

@Override
public Description matchMethod(MethodTree node, VisitorState state) {
 Symbol.MethodSymbol method = ASTHelpers.getSymbol(node);
 if (method == null) {
  return Description.NO_MATCH;
 }
 List<Integer> compileTimeConstantAnnotationIndexes = new ArrayList<>();
 for (int i = 0; i < method.getParameters().size(); i++) {
  if (hasCompileTimeConstantAnnotation(state, method.getParameters().get(i))) {
   compileTimeConstantAnnotationIndexes.add(i);
  }
 }
 if (compileTimeConstantAnnotationIndexes.isEmpty()) {
  return Description.NO_MATCH;
 }
 for (Symbol.MethodSymbol superMethod : ASTHelpers.findSuperMethods(method, state.getTypes())) {
  for (Integer index : compileTimeConstantAnnotationIndexes) {
   if (!hasCompileTimeConstantAnnotation(state, superMethod.getParameters().get(index))) {
    return buildDescription(node)
      .setMessage(
        "Method with @CompileTimeConstant parameter can't override method without it.")
      .build();
   }
  }
 }
 return Description.NO_MATCH;
}

代码示例来源:origin: google/error-prone

try {
 boolean exactlyOneParamWithNoType =
   lambda.params.size() == 1 && lambda.params.get(0).vartype == null;
 if (!exactlyOneParamWithNoType) {
  print("(");

代码示例来源:origin: google/error-prone

public Description describe(MethodTree tree, VisitorState state) {
  SuggestedFix.Builder builder = null;

  MethodSymbol method = ASTHelpers.getSymbol(tree);

  if (supermethod == null) {
   throw new IllegalStateException("Matching supermethod was not found");
  }

  for (int x = 0; x < method.params().size(); x++) {
   Type methodParamType = method.params().get(x).type;
   Type supermethodParamType = supermethod.params().get(x).type;
   if (methodParamType.tsym.name.contentEquals(supermethodParamType.tsym.name)
     && !state.getTypes().isSameType(methodParamType, supermethodParamType)) {
    VariableTree param = tree.getParameters().get(x);

    // TODO(user): Name is most likely more qualified than necessary.
    Name replacement = supermethodParamType.tsym.getQualifiedName();
    if (builder == null) {
     builder = SuggestedFix.builder();
    }
    builder.replace(param, replacement + " " + param.getName());
   }
  }

  return (builder != null) ? describeMatch(tree, builder.build()) : describeMatch(tree);
 }
}

代码示例来源:origin: google/error-prone

JCTree inlineBody(Inliner inliner) throws CouldNotResolveImportException {
 if (getBody() instanceof UPlaceholderExpression) {
  UPlaceholderExpression body = (UPlaceholderExpression) getBody();
  Optional<List<JCStatement>> blockBinding =
    inliner.getOptionalBinding(body.placeholder().blockKey());
  if (blockBinding.isPresent()) {
   // this lambda is of the form args -> blockPlaceholder();
   List<JCStatement> blockInlined =
     UPlaceholderExpression.copier(body.arguments(), inliner)
       .copy(blockBinding.get(), inliner);
   if (blockInlined.size() == 1) {
    if (blockInlined.get(0) instanceof JCReturn) {
     return ((JCReturn) blockInlined.get(0)).getExpression();
    } else if (blockInlined.get(0) instanceof JCExpressionStatement) {
     return ((JCExpressionStatement) blockInlined.get(0)).getExpression();
    }
   }
   return inliner.maker().Block(0, blockInlined);
  }
 }
 return getBody().inline(inliner);
}

代码示例来源:origin: google/error-prone

/**
 * Searches the annotation list for {@code @Test(expected=...)}. If found, deletes the exception
 * attribute from the annotation, and returns its value.
 */
private static JCExpression deleteExpectedException(
  SuggestedFix.Builder fix, List<JCAnnotation> annotations, VisitorState state) {
 Type testAnnotation = state.getTypeFromString(JUnitMatchers.JUNIT4_TEST_ANNOTATION);
 for (JCAnnotation annotationTree : annotations) {
  if (!ASTHelpers.isSameType(testAnnotation, annotationTree.type, state)) {
   continue;
  }
  com.sun.tools.javac.util.List<JCExpression> arguments = annotationTree.getArguments();
  for (JCExpression arg : arguments) {
   if (!arg.hasTag(Tag.ASSIGN)) {
    continue;
   }
   JCAssign assign = (JCAssign) arg;
   if (assign.lhs.hasTag(Tag.IDENT)
     && ((JCIdent) assign.lhs).getName().contentEquals("expected")) {
    if (arguments.size() == 1) {
     fix.replace(annotationTree, "@Test");
    } else {
     removeFromList(fix, state, arguments, assign);
    }
    return assign.rhs;
   }
  }
 }
 return null;
}

代码示例来源:origin: google/error-prone

if (genericsArgument.getTypeArguments().size() != 2) {
 return emptyFix();

代码示例来源:origin: google/error-prone

return NO_MATCH;
if (tree.getArguments().size() != sym.getParameters().size()) {

代码示例来源:origin: google/error-prone

static Type getTargetType(VisitorState state) {
 Tree parent = state.getPath().getParentPath().getLeaf();
 Type type;
 if (parent instanceof VariableTree || parent instanceof AssignmentTree) {
  type = ASTHelpers.getType(parent);
 } else if (parent instanceof ReturnTree || parent instanceof LambdaExpressionTree) {
  type = getMethodOrLambdaReturnType(state);
 } else if (parent instanceof MethodInvocationTree) {
  MethodInvocationTree tree = (MethodInvocationTree) parent;
  int idx = tree.getArguments().indexOf(state.getPath().getLeaf());
  if (idx == -1) {
   return null;
  }
  Type methodType = ASTHelpers.getType(tree.getMethodSelect());
  if (idx >= methodType.getParameterTypes().size()) {
   return null;
  }
  return methodType.getParameterTypes().get(idx);
 } else {
  return null;
 }
 Tree tree = state.getPath().getLeaf();
 if (tree instanceof MemberReferenceTree) {
  type = state.getTypes().findDescriptorType(ASTHelpers.getType(tree)).getReturnType();
 }
 return type;
}

相关文章