本文整理了Java中com.sun.tools.javac.util.List.stream()
方法的一些代码示例,展示了List.stream()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。List.stream()
方法的具体详情如下:
包路径:com.sun.tools.javac.util.List
类名称:List
方法名:stream
暂无
代码示例来源:origin: google/error-prone
/**
* Returns true if the method has synthetic parameter names, indicating the real names are not
* available.
*/
public static boolean containsSyntheticParameterName(MethodSymbol sym) {
return sym.getParameters().stream()
.anyMatch(p -> SYNTHETIC_PARAMETER_NAME.matcher(p.getSimpleName()).matches());
}
代码示例来源:origin: google/error-prone
private static boolean hasAttribute(Symbol sym, Name annotationName) {
return sym.getRawAttributes().stream()
.anyMatch(a -> a.type.tsym.getQualifiedName().equals(annotationName));
}
代码示例来源:origin: google/error-prone
private static ImmutableSet<Symbol> getAnnotations(MethodSymbol symbol) {
return symbol.getRawAttributes().stream().map(a -> a.type.tsym).collect(toImmutableSet());
}
}
代码示例来源:origin: google/error-prone
/**
* A string representation of a method descriptor, where all parameters whose type is a functional
* interface are "erased" to the interface's function type. For example, `foo(Supplier<String>)`
* is represented as `foo(()->Ljava/lang/String;)`.
*/
private static String functionalInterfaceSignature(VisitorState state, MethodSymbol msym) {
return String.format(
"%s(%s)",
msym.getSimpleName(),
msym.getParameters().stream()
.map(p -> functionalInterfaceSignature(state, p.type))
.collect(joining(",")));
}
代码示例来源:origin: google/error-prone
private static Stream<MethodSymbol> findSuperMethods(
MethodSymbol methodSymbol, Types types, boolean skipInterfaces) {
TypeSymbol owner = (TypeSymbol) methodSymbol.owner;
return types.closure(owner.type).stream()
.filter(closureTypes -> skipInterfaces ? !closureTypes.isInterface() : true)
.map(type -> findSuperMethodInType(methodSymbol, type, types))
.filter(Objects::nonNull);
}
代码示例来源:origin: google/error-prone
/** Returns a string descriptor of a method's reference type. */
private String methodReferenceDescriptor(Types types, MethodSymbol sym) {
StringBuilder sb = new StringBuilder();
sb.append(sym.getSimpleName()).append('(');
if (!sym.isStatic()) {
sb.append(Signatures.descriptor(sym.owner.type, types));
}
sym.params().stream().map(p -> Signatures.descriptor(p.type, types)).forEachOrdered(sb::append);
sb.append(")");
return sb.toString();
}
}
代码示例来源:origin: uber/NullAway
/**
* NOTE: this method does not work for getting all annotations of parameters of methods from class
* files. For that case, use {@link #getAllAnnotationsForParameter(Symbol.MethodSymbol, int)}
*
* @param symbol the symbol
* @return all annotations on the symbol and on the type of the symbol
*/
public static Stream<? extends AnnotationMirror> getAllAnnotations(Symbol symbol) {
// for methods, we care about annotations on the return type, not on the method type itself
Stream<? extends AnnotationMirror> typeUseAnnotations = getTypeUseAnnotations(symbol);
return Stream.concat(symbol.getAnnotationMirrors().stream(), typeUseAnnotations);
}
代码示例来源:origin: google/error-prone
/**
* Returns true if the given type parameter's declaration is annotated with {@link
* #typeParameterAnnotation} indicated it will only ever be instantiated with thread-safe types.
*/
public boolean hasThreadSafeTypeParameterAnnotation(TypeVariableSymbol symbol) {
return typeParameterAnnotation != null
&& symbol.getAnnotationMirrors().stream()
.anyMatch(t -> t.type.tsym.flatName().contentEquals(typeParameterAnnotation.getName()));
}
代码示例来源:origin: google/error-prone
/** Checks if a method symbol has any attribute from the org.junit package. */
private static boolean hasJUnitAttr(MethodSymbol methodSym) {
return methodSym.getRawAttributes().stream()
.anyMatch(attr -> attr.type.tsym.getQualifiedName().toString().startsWith("org.junit."));
}
代码示例来源:origin: google/error-prone
private static ImmutableSet<String> getAnnotationValueAsStrings(Symbol sym, String guardedBy) {
return sym.getRawAttributes().stream()
.filter(a -> a.getAnnotationType().asElement().getSimpleName().contentEquals(guardedBy))
.flatMap(
a ->
// TODO(cushon): after the next release:
// MoreAnnotations.getValue(a, "value").map(MoreAnnotations::asStrings)
a.getElementValues().entrySet().stream()
.filter(e -> e.getKey().getSimpleName().contentEquals("value"))
.map(Map.Entry::getValue)
.findFirst()
.map(GuardedByUtils::asStrings)
.orElse(Stream.empty()))
.collect(toImmutableSet());
}
代码示例来源:origin: google/error-prone
@Override
public String visitClassType(Type.ClassType t, Void s) {
StringBuilder sb = new StringBuilder();
sb.append(t.tsym.getSimpleName());
if (t.getTypeArguments().nonEmpty()) {
sb.append('<');
sb.append(
t.getTypeArguments().stream()
.map(a -> a.accept(this, null))
.collect(joining(", ")));
sb.append(">");
}
return sb.toString();
}
代码示例来源:origin: uber/NullAway
private static Stream<? extends AnnotationMirror> getTypeUseAnnotations(Symbol symbol) {
Stream<Attribute.TypeCompound> rawTypeAttributes = symbol.getRawTypeAttributes().stream();
if (symbol instanceof Symbol.MethodSymbol) {
// for methods, we want the type-use annotations on the return type
return rawTypeAttributes.filter((t) -> t.position.type.equals(TargetType.METHOD_RETURN));
}
return rawTypeAttributes;
}
代码示例来源:origin: google/error-prone
/**
* Pretty-prints a method signature for use in diagnostics.
*
* <p>Uses simple names for declared types, and omitting formal type parameters and the return
* type since they do not affect overload resolution.
*/
public static String prettyMethodSignature(ClassSymbol origin, MethodSymbol m) {
StringBuilder sb = new StringBuilder();
if (!m.owner.equals(origin)) {
sb.append(m.owner.getSimpleName()).append('.');
}
sb.append(m.isConstructor() ? origin.getSimpleName() : m.getSimpleName()).append('(');
sb.append(
m.getParameters().stream()
.map(v -> v.type.accept(PRETTY_TYPE_VISITOR, null))
.collect(joining(", ")));
sb.append(')');
return sb.toString();
}
代码示例来源:origin: google/error-prone
@Override
public String visitClassType(Type.ClassType t, Void unused) {
StringBuilder sb = new StringBuilder();
if (state == null || fix == null) {
sb.append(t.tsym.getSimpleName());
} else {
sb.append(qualifyType(state, fix, t.tsym));
}
if (t.getTypeArguments().nonEmpty()) {
sb.append('<');
sb.append(
t.getTypeArguments().stream()
.map(a -> a.accept(this, null))
.collect(joining(", ")));
sb.append(">");
}
return sb.toString();
}
代码示例来源:origin: google/error-prone
private static boolean implementsImmutableInterface(ClassSymbol symbol) {
return Streams.concat(symbol.getInterfaces().stream(), Stream.of(symbol.getSuperclass()))
.anyMatch(supertype -> supertype.asElement().getAnnotation(Immutable.class) != null);
}
}
代码示例来源:origin: google/error-prone
private static Optional<JCCatch> catchesType(
JCTry tryStatement, Type assertionErrorType, VisitorState state) {
return tryStatement.getCatches().stream()
.filter(
catchTree -> {
Type type = ASTHelpers.getType(catchTree.getParameter());
return (type.isUnion()
? Streams.stream(((UnionClassType) type).getAlternativeTypes())
: Stream.of(type))
.anyMatch(caught -> isSubtype(assertionErrorType, caught, state));
})
.findFirst();
}
代码示例来源:origin: google/error-prone
private static Symbol getFinalizer(VisitorState state, ClassSymbol enclosing) {
Type finalizerType = state.getTypeFromString("com.google.common.labs.base.Finalizer");
Optional<VarSymbol> finalizerField =
state.getTypes().closure(enclosing.asType()).stream()
.flatMap(s -> getFields(s.asElement()))
.filter(s -> ASTHelpers.isSameType(finalizerType, s.asType(), state))
.findFirst();
if (finalizerField.isPresent()) {
return finalizerField.get();
}
return ASTHelpers.resolveExistingMethod(
state,
enclosing.enclClass(),
state.getName("finalize"),
/* argTypes= */ ImmutableList.of(),
/* tyargTypes= */ ImmutableList.of());
}
代码示例来源:origin: google/error-prone
private static String suggestedSingleLetter(String id, Tree tree) {
char firstLetter = id.charAt(0);
Symbol sym = ASTHelpers.getSymbol(tree);
List<TypeVariableSymbol> enclosingTypeSymbols = typeVariablesEnclosing(sym);
for (TypeVariableSymbol typeName : enclosingTypeSymbols) {
char enclosingTypeFirstLetter = typeName.toString().charAt(0);
if (enclosingTypeFirstLetter == firstLetter
&& !TypeParameterNamingClassification.classify(typeName.name.toString()).isValidName()) {
ImmutableList<String> typeVarsInScope =
Streams.concat(enclosingTypeSymbols.stream(), sym.getTypeParameters().stream())
.map(v -> v.name.toString())
.collect(toImmutableList());
return firstLetterReplacementName(id, typeVarsInScope);
}
}
return Character.toString(firstLetter);
}
// T -> T2
代码示例来源:origin: google/error-prone
private static String functionalInterfaceSignature(VisitorState state, Type type) {
Types types = state.getTypes();
if (!maybeFunctionalInterface(type, types, state)) {
return Signatures.descriptor(type, types);
}
Type descriptorType = types.findDescriptorType(type);
List<Type> fiparams = descriptorType.getParameterTypes();
// Implicitly typed block-statement-bodied lambdas are potentially compatible with
// void-returning and value-returning functional interface types, so we don't consider return
// types in general. The except is nullary functional interfaces, since the lambda parameters
// will never be implicitly typed.
String result =
fiparams.isEmpty() ? Signatures.descriptor(descriptorType.getReturnType(), types) : "_";
return String.format(
"(%s)->%s",
fiparams.stream().map(t -> Signatures.descriptor(t, types)).collect(joining(",")), result);
}
代码示例来源:origin: uber/NullAway
private boolean isExcludedClass(Symbol.ClassSymbol classSymbol, VisitorState state) {
String className = classSymbol.getQualifiedName().toString();
if (config.isExcludedClass(className)) {
return true;
}
if (!config.fromAnnotatedPackage(classSymbol)) {
return true;
}
// check annotations
ImmutableSet<String> excludedClassAnnotations = config.getExcludedClassAnnotations();
return classSymbol
.getAnnotationMirrors()
.stream()
.map(anno -> anno.getAnnotationType().toString())
.anyMatch(excludedClassAnnotations::contains);
}
内容来源于网络,如有侵权,请联系作者删除!