new ArrayList<>(declaredMethod.getTypeParameters());
List<TypeVariableSymbol> typeParameters = sym.getTypeParameters(); Set<TypeVariableSymbol> returnTypeChoosing = new HashSet<>();
for (TypeVariableSymbol typeVar : callee.getTypeParameters()) { InferenceVariable typeVarIV = TypeVariableInferenceVar.create(typeVar, node); for (InferenceVariable iv :
List<TypeVariableSymbol> typeParameters = sym.getTypeParameters(); Set<TypeVariableSymbol> returnTypeChoosing = new HashSet<>();
for (TypeVariableSymbol typeVar : callee.getTypeParameters()) { InferenceVariable typeVarIV = TypeVariableInferenceVar.create(typeVar, node); for (InferenceVariable iv : getReferencesToTypeVar(typeVar, callee.getReturnType(), node)) {
new ArrayList<>(declaredMethod.getTypeParameters());
srcMethod.returns( makeSrcType( method.getReturnType(), method, TargetType.METHOD_RETURN, -1 ) ); for( Symbol.TypeVariableSymbol typeVar: method.getTypeParameters() )
private Symbol attributeParamIdentifier(TreePath path, DCParam ptag) { Symbol javadocSymbol = getElement(path); if (javadocSymbol == null) return null; ElementKind kind = javadocSymbol.getKind(); List<? extends Symbol> params = List.nil(); if (kind == ElementKind.METHOD || kind == ElementKind.CONSTRUCTOR) { MethodSymbol ee = (MethodSymbol) javadocSymbol; params = ptag.isTypeParameter() ? ee.getTypeParameters() : ee.getParameters(); } else if (kind.isClass() || kind.isInterface()) { ClassSymbol te = (ClassSymbol) javadocSymbol; params = te.getTypeParameters(); } for (Symbol param : params) { if (param.getSimpleName() == ptag.getName().getName()) { return param; } } return null; }
private Symbol attributeParamIdentifier(TreePath path, DCParam ptag) { Symbol javadocSymbol = getElement(path); if (javadocSymbol == null) return null; ElementKind kind = javadocSymbol.getKind(); List<? extends Symbol> params = List.nil(); if (kind == ElementKind.METHOD || kind == ElementKind.CONSTRUCTOR) { MethodSymbol ee = (MethodSymbol) javadocSymbol; params = ptag.isTypeParameter() ? ee.getTypeParameters() : ee.getParameters(); } else if (kind.isClass() || kind.isInterface()) { ClassSymbol te = (ClassSymbol) javadocSymbol; params = te.getTypeParameters(); } for (Symbol param : params) { if (param.getSimpleName() == ptag.getName().getName()) { return param; } } return null; }
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)); }
/** * Returns {@code true} for {@link MethodSymbol}s of generic methods where one of the method's * type parameters <b>is</b> the result type, {@code false} otherwise. */ private static boolean hasGenericResult(MethodSymbol methodSymbol) { Type resultType = methodSymbol.getReturnType(); for (TypeVariableSymbol var : methodSymbol.getTypeParameters()) { if (resultType.tsym.equals(var)) { return true; } } return false; }
if (methSym != null && !methSym.getTypeParameters().isEmpty()) { ClassSymbol target = (ClassSymbol) methSym.getEnclosingElement(); if (!target.getQualifiedName().toString().startsWith(JSweetConfig.LIBS_PACKAGE + ".")) { boolean inOverload = overload != null && overload.methods.size() > 1; if (!(inOverload && !overload.isValid)) { printAnyTypeArguments(methSym.getTypeParameters().size());
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)); }