protected static boolean isExactMatch(ResolvedMethodLikeDeclaration method, List<ResolvedType> argumentsTypes) { for (int i = 0; i < method.getNumberOfParams(); i++) { if (!method.getParam(i).getType().equals(argumentsTypes.get(i))) { return false; } } return true; }
for (int i = 0; i < methodUsage.getParamTypes().size(); i++) { ResolvedParameterDeclaration parameter = methodUsage.getDeclaration().getParam(i); ResolvedType parameterType = parameter.getType(); if (parameter.isVariadic()) { parameterType = parameterType.asArrayType().getComponentType();
@Test public void solvingReferenceToCatchClauseParam() { String code = "public class Bla {\n" + " public void main()\n" + " {\n" + " try\n" + " {\n" + " int i = 0;\n" + " }\n" + " catch (UnsupportedOperationException e)\n" + " {\n" + " String s;\n" + " e.getMessage();\n" + " }\n" + " }\n" + "}"; MethodCallExpr methodCallExpr = Navigator.findNodeOfGivenClass(JavaParser.parse(code), MethodCallExpr.class); NameExpr nameE = (NameExpr)methodCallExpr.getScope().get(); SymbolReference<? extends ResolvedValueDeclaration> symbolReference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(nameE); assertEquals(true, symbolReference.isSolved()); assertEquals(true, symbolReference.getCorrespondingDeclaration().isParameter()); assertEquals("e", symbolReference.getCorrespondingDeclaration().asParameter().getName()); assertEquals("java.lang.UnsupportedOperationException", symbolReference.getCorrespondingDeclaration().asParameter().getType().asReferenceType().getQualifiedName()); }
if (resolvedMethodLikeDeclaration.getParam(i).getName().equals(parameter.getNameAsString())) { return resultClass.cast(resolvedMethodLikeDeclaration.getParam(i));
for (int i = 0; i < methodUsage.getParamTypes().size(); i++) { ResolvedParameterDeclaration parameter = methodUsage.getDeclaration().getParam(i); ResolvedType parameterType = parameter.getType(); if (parameter.isVariadic()) { parameterType = parameterType.asArrayType().getComponentType();
if (resolvedMethodLikeDeclaration.getParam(i).getName().equals(parameter.getNameAsString())) { return resultClass.cast(resolvedMethodLikeDeclaration.getParam(i));
for (int i = 0; i < methodUsage.getParamTypes().size(); i++) { ResolvedParameterDeclaration parameter = methodUsage.getDeclaration().getParam(i); ResolvedType parameterType = parameter.getType(); if (parameter.isVariadic()) { parameterType = parameterType.asArrayType().getComponentType();
private List<ResolvedType> formalParameterTypes(ResolvedMethodDeclaration methodDeclaration) { List<ResolvedType> types = new LinkedList<>(); for (int i=0;i<methodDeclaration.getNumberOfParams();i++) { types.add(methodDeclaration.getParam(i).getType()); } return types; }
if (resolvedMethodLikeDeclaration.getParam(i).getName().equals(parameter.getNameAsString())) { return resultClass.cast(resolvedMethodLikeDeclaration.getParam(i));
for (int j = 0; j < method.getParamTypes().size(); j++) { ResolvedParameterDeclaration parameter = method.getDeclaration().getParam(i); ResolvedType parameterType = parameter.getType(); if (parameter.isVariadic()) { parameterType = parameterType.asArrayType().getComponentType();
protected static boolean isExactMatch(ResolvedMethodLikeDeclaration method, List<ResolvedType> argumentsTypes) { for (int i = 0; i < method.getNumberOfParams(); i++) { if (!method.getParam(i).getType().equals(argumentsTypes.get(i))) { return false; } } return true; }
for (int j = 0; j < method.getParamTypes().size(); j++) { ResolvedParameterDeclaration parameter = method.getDeclaration().getParam(i); ResolvedType parameterType = parameter.getType(); if (parameter.isVariadic()) { parameterType = parameterType.asArrayType().getComponentType();
private List<ResolvedType> formalParameterTypes(ResolvedMethodDeclaration methodDeclaration) { List<ResolvedType> types = new LinkedList<>(); for (int i=0;i<methodDeclaration.getNumberOfParams();i++) { types.add(methodDeclaration.getParam(i).getType()); } return types; }
for (int j = 0; j < method.getParamTypes().size(); j++) { ResolvedParameterDeclaration parameter = method.getDeclaration().getParam(i); ResolvedType parameterType = parameter.getType(); if (parameter.isVariadic()) { parameterType = parameterType.asArrayType().getComponentType();
protected static boolean isExactMatch(ResolvedMethodLikeDeclaration method, List<ResolvedType> argumentsTypes) { for (int i = 0; i < method.getNumberOfParams(); i++) { if (!method.getParam(i).getType().equals(argumentsTypes.get(i))) { return false; } } return true; }
if (method.getNumberOfParams() == argumentsTypes.size()) { ResolvedType expectedType = method.getLastParam().getType(); ResolvedType actualType = argumentsTypes.get(pos); if (!expectedType.isAssignableBy(actualType)) { argumentsTypes.set(pos, actualType.asArrayType().getComponentType()); } else { argumentsTypes = groupVariadicParamValues(argumentsTypes, pos, method.getLastParam().getType()); return false; argumentsTypes = groupVariadicParamValues(argumentsTypes, pos, method.getLastParam().getType()); boolean needForWildCardTolerance = false; for (int i = 0; i < method.getNumberOfParams(); i++) { ResolvedType expectedType = method.getParam(i).getType(); ResolvedType actualType = argumentsTypes.get(i); if ((expectedType.isTypeVariable() && !(expectedType.isWildcard())) && expectedType.asTypeParameter().declaredOnMethod()) { (method.getParam(i).isVariadic() && new ResolvedArrayType(expectedType).isAssignableBy(actualType)); if (!isAssignableWithoutSubstitution && expectedType.isReferenceType() && actualType.isReferenceType()) { isAssignableWithoutSubstitution = isAssignableMatchTypeParameters(
private List<ResolvedType> formalParameterTypes(ResolvedMethodDeclaration methodDeclaration) { List<ResolvedType> types = new LinkedList<>(); for (int i=0;i<methodDeclaration.getNumberOfParams();i++) { types.add(methodDeclaration.getParam(i).getType()); } return types; }
if (method.getNumberOfParams() == argumentsTypes.size()) { ResolvedType expectedType = method.getLastParam().getType(); ResolvedType actualType = argumentsTypes.get(pos); if (!expectedType.isAssignableBy(actualType)) { argumentsTypes.set(pos, actualType.asArrayType().getComponentType()); } else { argumentsTypes = groupVariadicParamValues(argumentsTypes, pos, method.getLastParam().getType()); return false; argumentsTypes = groupVariadicParamValues(argumentsTypes, pos, method.getLastParam().getType()); boolean needForWildCardTolerance = false; for (int i = 0; i < method.getNumberOfParams(); i++) { ResolvedType expectedType = method.getParam(i).getType(); ResolvedType actualType = argumentsTypes.get(i); if ((expectedType.isTypeVariable() && !(expectedType.isWildcard())) && expectedType.asTypeParameter().declaredOnMethod()) { (method.getParam(i).isVariadic() && new ResolvedArrayType(expectedType).isAssignableBy(actualType)); if (!isAssignableWithoutSubstitution && expectedType.isReferenceType() && actualType.isReferenceType()) { isAssignableWithoutSubstitution = isAssignableMatchTypeParameters(
private static ResolvedType getMethodsExplicitAndVariadicParameterType(ResolvedMethodDeclaration method, int i) { int numberOfParams = method.getNumberOfParams(); if (i < numberOfParams) { return method.getParam(i).getType(); } else if (method.hasVariadicParameter()) { return method.getParam(numberOfParams - 1).getType(); } else { return null; } }
if (method.getNumberOfParams() == argumentsTypes.size()) { ResolvedType expectedType = method.getLastParam().getType(); ResolvedType actualType = argumentsTypes.get(pos); if (!expectedType.isAssignableBy(actualType)) { argumentsTypes.set(pos, actualType.asArrayType().getComponentType()); } else { argumentsTypes = groupVariadicParamValues(argumentsTypes, pos, method.getLastParam().getType()); return false; argumentsTypes = groupVariadicParamValues(argumentsTypes, pos, method.getLastParam().getType()); boolean needForWildCardTolerance = false; for (int i = 0; i < method.getNumberOfParams(); i++) { ResolvedType expectedType = method.getParam(i).getType(); ResolvedType actualType = argumentsTypes.get(i); if ((expectedType.isTypeVariable() && !(expectedType.isWildcard())) && expectedType.asTypeParameter().declaredOnMethod()) { (method.getParam(i).isVariadic() && new ResolvedArrayType(expectedType).isAssignableBy(actualType)); if (!isAssignableWithoutSubstitution && expectedType.isReferenceType() && actualType.isReferenceType()) { isAssignableWithoutSubstitution = isAssignableMatchTypeParameters(