Skip to content

Commit

Permalink
rename to typevariable and add comment
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomassetti committed Oct 17, 2016
1 parent 88db8b2 commit d6a1f32
Show file tree
Hide file tree
Showing 17 changed files with 41 additions and 38 deletions.
Expand Up @@ -21,7 +21,7 @@
import me.tomassetti.symbolsolver.model.resolution.SymbolReference; import me.tomassetti.symbolsolver.model.resolution.SymbolReference;
import me.tomassetti.symbolsolver.model.resolution.TypeSolver; import me.tomassetti.symbolsolver.model.resolution.TypeSolver;
import me.tomassetti.symbolsolver.model.usages.typesystem.*; import me.tomassetti.symbolsolver.model.usages.typesystem.*;
import me.tomassetti.symbolsolver.model.usages.typesystem.TypeParameter; import me.tomassetti.symbolsolver.model.usages.typesystem.TypeVariable;
import me.tomassetti.symbolsolver.reflectionmodel.ReflectionClassDeclaration; import me.tomassetti.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
import me.tomassetti.symbolsolver.resolution.SymbolSolver; import me.tomassetti.symbolsolver.resolution.SymbolSolver;
import me.tomassetti.symbolsolver.resolution.typesolvers.JreTypeSolver; import me.tomassetti.symbolsolver.resolution.typesolvers.JreTypeSolver;
Expand Down Expand Up @@ -566,10 +566,10 @@ public Type convertToUsage(com.github.javaparser.ast.type.Type type, Context con
} }
if (typeDeclaration.isTypeVariable()) { if (typeDeclaration.isTypeVariable()) {
if (typeDeclaration instanceof TypeParameterDeclaration) { if (typeDeclaration instanceof TypeParameterDeclaration) {
return new TypeParameter((TypeParameterDeclaration) typeDeclaration); return new TypeVariable((TypeParameterDeclaration) typeDeclaration);
} else { } else {
JavaParserTypeVariableDeclaration javaParserTypeVariableDeclaration = (JavaParserTypeVariableDeclaration) typeDeclaration; JavaParserTypeVariableDeclaration javaParserTypeVariableDeclaration = (JavaParserTypeVariableDeclaration) typeDeclaration;
return new TypeParameter(javaParserTypeVariableDeclaration.asTypeParameter()); return new TypeVariable(javaParserTypeVariableDeclaration.asTypeParameter());
} }
} else { } else {
return new ReferenceTypeImpl(typeDeclaration, typeParameters, typeSolver); return new ReferenceTypeImpl(typeDeclaration, typeParameters, typeSolver);
Expand Down
Expand Up @@ -19,7 +19,7 @@
import me.tomassetti.symbolsolver.model.resolution.Value; import me.tomassetti.symbolsolver.model.resolution.Value;
import me.tomassetti.symbolsolver.model.usages.typesystem.ReferenceType; import me.tomassetti.symbolsolver.model.usages.typesystem.ReferenceType;
import me.tomassetti.symbolsolver.model.usages.typesystem.Type; import me.tomassetti.symbolsolver.model.usages.typesystem.Type;
import me.tomassetti.symbolsolver.model.usages.typesystem.TypeParameter; import me.tomassetti.symbolsolver.model.usages.typesystem.TypeVariable;
import me.tomassetti.symbolsolver.resolution.MethodResolutionLogic; import me.tomassetti.symbolsolver.resolution.MethodResolutionLogic;
import me.tomassetti.symbolsolver.resolution.SymbolDeclarator; import me.tomassetti.symbolsolver.resolution.SymbolDeclarator;
import me.tomassetti.symbolsolver.resolution.SymbolSolver; import me.tomassetti.symbolsolver.resolution.SymbolSolver;
Expand Down Expand Up @@ -95,7 +95,7 @@ public Optional<Value> solveSymbolAsValue(String name, TypeSolver typeSolver) {
public Optional<Type> solveGenericType(String name, TypeSolver typeSolver) { public Optional<Type> solveGenericType(String name, TypeSolver typeSolver) {
for (com.github.javaparser.ast.TypeParameter tp : wrappedNode.getTypeParameters()) { for (com.github.javaparser.ast.TypeParameter tp : wrappedNode.getTypeParameters()) {
if (tp.getName().equals(name)) { if (tp.getName().equals(name)) {
return Optional.of(new TypeParameter(new JavaParserTypeParameter(tp, typeSolver))); return Optional.of(new TypeVariable(new JavaParserTypeParameter(tp, typeSolver)));
} }
} }
return getParent().solveGenericType(name, typeSolver); return getParent().solveGenericType(name, typeSolver);
Expand Down
Expand Up @@ -3,7 +3,7 @@
import com.github.javaparser.ast.body.ConstructorDeclaration; import com.github.javaparser.ast.body.ConstructorDeclaration;
import com.github.javaparser.ast.body.Parameter; import com.github.javaparser.ast.body.Parameter;
import me.tomassetti.symbolsolver.model.declarations.ValueDeclaration; import me.tomassetti.symbolsolver.model.declarations.ValueDeclaration;
import me.tomassetti.symbolsolver.model.usages.typesystem.TypeParameter; import me.tomassetti.symbolsolver.model.usages.typesystem.TypeVariable;
import me.tomassetti.symbolsolver.model.usages.typesystem.Type; import me.tomassetti.symbolsolver.model.usages.typesystem.Type;
import me.tomassetti.symbolsolver.resolution.SymbolDeclarator; import me.tomassetti.symbolsolver.resolution.SymbolDeclarator;
import me.tomassetti.symbolsolver.model.resolution.SymbolReference; import me.tomassetti.symbolsolver.model.resolution.SymbolReference;
Expand Down Expand Up @@ -40,7 +40,7 @@ public SymbolReference<? extends ValueDeclaration> solveSymbol(String name, Type
public Optional<Type> solveGenericType(String name, TypeSolver typeSolver) { public Optional<Type> solveGenericType(String name, TypeSolver typeSolver) {
for (com.github.javaparser.ast.TypeParameter tp : wrappedNode.getTypeParameters()) { for (com.github.javaparser.ast.TypeParameter tp : wrappedNode.getTypeParameters()) {
if (tp.getName().equals(name)) { if (tp.getName().equals(name)) {
return Optional.of(new TypeParameter(new JavaParserTypeParameter(tp, typeSolver))); return Optional.of(new TypeVariable(new JavaParserTypeParameter(tp, typeSolver)));
} }
} }
return super.solveGenericType(name, typeSolver); return super.solveGenericType(name, typeSolver);
Expand Down
Expand Up @@ -13,7 +13,7 @@
import me.tomassetti.symbolsolver.model.usages.MethodUsage; import me.tomassetti.symbolsolver.model.usages.MethodUsage;
import me.tomassetti.symbolsolver.model.resolution.*; import me.tomassetti.symbolsolver.model.resolution.*;
import me.tomassetti.symbolsolver.model.usages.typesystem.*; import me.tomassetti.symbolsolver.model.usages.typesystem.*;
import me.tomassetti.symbolsolver.model.usages.typesystem.TypeParameter; import me.tomassetti.symbolsolver.model.usages.typesystem.TypeVariable;
import me.tomassetti.symbolsolver.reflectionmodel.ReflectionClassDeclaration; import me.tomassetti.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
import me.tomassetti.symbolsolver.resolution.MethodResolutionLogic; import me.tomassetti.symbolsolver.resolution.MethodResolutionLogic;


Expand Down Expand Up @@ -127,7 +127,7 @@ public String toString() {
return "MethodCallExprContext{wrapped=" + wrappedNode+ "}"; return "MethodCallExprContext{wrapped=" + wrappedNode+ "}";
} }


private Optional<MethodUsage> solveMethodAsUsage(TypeParameter tp, String name, List<Type> argumentsTypes, TypeSolver typeSolver, Context invokationContext) { private Optional<MethodUsage> solveMethodAsUsage(TypeVariable tp, String name, List<Type> argumentsTypes, TypeSolver typeSolver, Context invokationContext) {
for (TypeParameterDeclaration.Bound bound : tp.asTypeParameter().getBounds(typeSolver)) { for (TypeParameterDeclaration.Bound bound : tp.asTypeParameter().getBounds(typeSolver)) {
Optional<MethodUsage> methodUsage = solveMethodAsUsage(bound.getType(), name, argumentsTypes, typeSolver, invokationContext); Optional<MethodUsage> methodUsage = solveMethodAsUsage(bound.getType(), name, argumentsTypes, typeSolver, invokationContext);
if (methodUsage.isPresent()) { if (methodUsage.isPresent()) {
Expand All @@ -140,8 +140,8 @@ private Optional<MethodUsage> solveMethodAsUsage(TypeParameter tp, String name,
private Optional<MethodUsage> solveMethodAsUsage(Type type, String name, List<Type> argumentsTypes, TypeSolver typeSolver, Context invokationContext) { private Optional<MethodUsage> solveMethodAsUsage(Type type, String name, List<Type> argumentsTypes, TypeSolver typeSolver, Context invokationContext) {
if (type instanceof ReferenceType) { if (type instanceof ReferenceType) {
return solveMethodAsUsage((ReferenceType) type, name, argumentsTypes, typeSolver, invokationContext); return solveMethodAsUsage((ReferenceType) type, name, argumentsTypes, typeSolver, invokationContext);
} else if (type instanceof TypeParameter) { } else if (type instanceof TypeVariable) {
return solveMethodAsUsage((TypeParameter) type, name, argumentsTypes, typeSolver, invokationContext); return solveMethodAsUsage((TypeVariable) type, name, argumentsTypes, typeSolver, invokationContext);
} else if (type instanceof Wildcard) { } else if (type instanceof Wildcard) {
Wildcard wildcardUsage = (Wildcard) type; Wildcard wildcardUsage = (Wildcard) type;
if (wildcardUsage.isSuper()) { if (wildcardUsage.isSuper()) {
Expand Down
Expand Up @@ -4,7 +4,7 @@
import com.github.javaparser.ast.body.MethodDeclaration; import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.body.Parameter; import com.github.javaparser.ast.body.Parameter;
import me.tomassetti.symbolsolver.model.declarations.ValueDeclaration; import me.tomassetti.symbolsolver.model.declarations.ValueDeclaration;
import me.tomassetti.symbolsolver.model.usages.typesystem.TypeParameter; import me.tomassetti.symbolsolver.model.usages.typesystem.TypeVariable;
import me.tomassetti.symbolsolver.model.usages.typesystem.Type; import me.tomassetti.symbolsolver.model.usages.typesystem.Type;
import me.tomassetti.symbolsolver.resolution.SymbolDeclarator; import me.tomassetti.symbolsolver.resolution.SymbolDeclarator;
import me.tomassetti.symbolsolver.model.resolution.SymbolReference; import me.tomassetti.symbolsolver.model.resolution.SymbolReference;
Expand Down Expand Up @@ -40,7 +40,7 @@ public SymbolReference<? extends ValueDeclaration> solveSymbol(String name, Type
public Optional<Type> solveGenericType(String name, TypeSolver typeSolver) { public Optional<Type> solveGenericType(String name, TypeSolver typeSolver) {
for (com.github.javaparser.ast.TypeParameter tp : wrappedNode.getTypeParameters()) { for (com.github.javaparser.ast.TypeParameter tp : wrappedNode.getTypeParameters()) {
if (tp.getName().equals(name)) { if (tp.getName().equals(name)) {
return Optional.of(new TypeParameter(new JavaParserTypeParameter(tp, typeSolver))); return Optional.of(new TypeVariable(new JavaParserTypeParameter(tp, typeSolver)));
} }
} }
return super.solveGenericType(name, typeSolver); return super.solveGenericType(name, typeSolver);
Expand Down
Expand Up @@ -4,7 +4,7 @@
import me.tomassetti.symbolsolver.model.resolution.TypeSolver; import me.tomassetti.symbolsolver.model.resolution.TypeSolver;
import me.tomassetti.symbolsolver.model.usages.typesystem.*; import me.tomassetti.symbolsolver.model.usages.typesystem.*;
import me.tomassetti.symbolsolver.model.usages.typesystem.Type; import me.tomassetti.symbolsolver.model.usages.typesystem.Type;
import me.tomassetti.symbolsolver.model.usages.typesystem.TypeParameter; import me.tomassetti.symbolsolver.model.usages.typesystem.TypeVariable;


import java.lang.reflect.*; import java.lang.reflect.*;


Expand All @@ -26,11 +26,11 @@ public static Type typeUsageFor(Class<?> clazz, TypeSolver typeSolver) {
} }


public static Type typeUsageFor(java.lang.reflect.Type type, TypeSolver typeSolver) { public static Type typeUsageFor(java.lang.reflect.Type type, TypeSolver typeSolver) {
if (type instanceof TypeVariable) { if (type instanceof java.lang.reflect.TypeVariable) {
TypeVariable tv = (TypeVariable) type; java.lang.reflect.TypeVariable tv = (java.lang.reflect.TypeVariable) type;
boolean declaredOnClass = ((TypeVariable) type).getGenericDeclaration() instanceof java.lang.reflect.Type; boolean declaredOnClass = ((java.lang.reflect.TypeVariable) type).getGenericDeclaration() instanceof java.lang.reflect.Type;
TypeParameterDeclaration typeParameter = new ReflectionTypeParameter(tv, declaredOnClass); TypeParameterDeclaration typeParameter = new ReflectionTypeParameter(tv, declaredOnClass);
return new TypeParameter(typeParameter); return new TypeVariable(typeParameter);
} else if (type instanceof ParameterizedType) { } else if (type instanceof ParameterizedType) {
ParameterizedType pt = (ParameterizedType) type; ParameterizedType pt = (ParameterizedType) type;
ReferenceType rawType = typeUsageFor(pt.getRawType(), typeSolver).asReferenceType(); ReferenceType rawType = typeUsageFor(pt.getRawType(), typeSolver).asReferenceType();
Expand Down
Expand Up @@ -8,7 +8,7 @@
import me.tomassetti.symbolsolver.core.resolution.Context; import me.tomassetti.symbolsolver.core.resolution.Context;
import me.tomassetti.symbolsolver.model.resolution.TypeSolver; import me.tomassetti.symbolsolver.model.resolution.TypeSolver;
import me.tomassetti.symbolsolver.model.usages.typesystem.ReferenceTypeImpl; import me.tomassetti.symbolsolver.model.usages.typesystem.ReferenceTypeImpl;
import me.tomassetti.symbolsolver.model.usages.typesystem.TypeParameter; import me.tomassetti.symbolsolver.model.usages.typesystem.TypeVariable;
import me.tomassetti.symbolsolver.model.usages.typesystem.Type; import me.tomassetti.symbolsolver.model.usages.typesystem.Type;


import java.lang.reflect.Method; import java.lang.reflect.Method;
Expand Down Expand Up @@ -43,7 +43,7 @@ static Optional<MethodUsage> solveMethodAsUsage(String name, List<Type> argument
i++; i++;
} }
for (TypeParameterDeclaration methodTypeParameter : methodDeclaration.getTypeParameters()) { for (TypeParameterDeclaration methodTypeParameter : methodDeclaration.getTypeParameters()) {
methodUsage = methodUsage.replaceTypeParameterByName(methodTypeParameter.getName(), new TypeParameter(methodTypeParameter)); methodUsage = methodUsage.replaceTypeParameterByName(methodTypeParameter.getName(), new TypeVariable(methodTypeParameter));
} }
methods.add(methodUsage); methods.add(methodUsage);
} }
Expand Down
Expand Up @@ -7,7 +7,7 @@
import me.tomassetti.symbolsolver.model.resolution.TypeSolver; import me.tomassetti.symbolsolver.model.resolution.TypeSolver;
import me.tomassetti.symbolsolver.model.usages.typesystem.ReferenceType; import me.tomassetti.symbolsolver.model.usages.typesystem.ReferenceType;
import me.tomassetti.symbolsolver.model.usages.typesystem.ReferenceTypeImpl; import me.tomassetti.symbolsolver.model.usages.typesystem.ReferenceTypeImpl;
import me.tomassetti.symbolsolver.model.usages.typesystem.TypeParameter; import me.tomassetti.symbolsolver.model.usages.typesystem.TypeVariable;
import me.tomassetti.symbolsolver.model.usages.typesystem.Type; import me.tomassetti.symbolsolver.model.usages.typesystem.Type;
import me.tomassetti.symbolsolver.reflectionmodel.ReflectionClassDeclaration; import me.tomassetti.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
import me.tomassetti.symbolsolver.resolution.typesolvers.JreTypeSolver; import me.tomassetti.symbolsolver.resolution.typesolvers.JreTypeSolver;
Expand All @@ -32,7 +32,7 @@ public void inferGenericTypesTestSimpleCase() {
TypeParameterDeclaration a = EasyMock.createMock(TypeParameterDeclaration.class); TypeParameterDeclaration a = EasyMock.createMock(TypeParameterDeclaration.class);
EasyMock.expect(a.getName()).andReturn("A").anyTimes(); EasyMock.expect(a.getName()).andReturn("A").anyTimes();
EasyMock.replay(a); EasyMock.replay(a);
TypeParameter aUsage = new TypeParameter(a); TypeVariable aUsage = new TypeVariable(a);
assertEquals(ImmutableMap.of("A", string), GenericTypeInferenceLogic.inferGenericTypes( assertEquals(ImmutableMap.of("A", string), GenericTypeInferenceLogic.inferGenericTypes(
ImmutableList.of(new Tuple2<Type, Type>(aUsage, string)))); ImmutableList.of(new Tuple2<Type, Type>(aUsage, string))));
} }
Expand All @@ -51,9 +51,9 @@ public void inferGenericTypesTestSimpleCaseWithTwoSubstitutions() {
EasyMock.replay(a); EasyMock.replay(a);
EasyMock.replay(b); EasyMock.replay(b);
EasyMock.replay(c); EasyMock.replay(c);
TypeParameter aUsage = new TypeParameter(a); TypeVariable aUsage = new TypeVariable(a);
TypeParameter bUsage = new TypeParameter(b); TypeVariable bUsage = new TypeVariable(b);
TypeParameter cUsage = new TypeParameter(c); TypeVariable cUsage = new TypeVariable(c);
assertEquals(ImmutableMap.of("A", string, "B", object, "C", string), GenericTypeInferenceLogic.inferGenericTypes( assertEquals(ImmutableMap.of("A", string, "B", object, "C", string), GenericTypeInferenceLogic.inferGenericTypes(
ImmutableList.of(new Tuple2<Type, Type>(aUsage, string), ImmutableList.of(new Tuple2<Type, Type>(aUsage, string),
new Tuple2<Type, Type>(bUsage, object), new Tuple2<Type, Type>(bUsage, object),
Expand Down
Expand Up @@ -34,7 +34,7 @@ public void setup() {
arrayOfStrings = new ArrayType(STRING); arrayOfStrings = new ArrayType(STRING);
arrayOfListOfA = new ArrayType(new ReferenceTypeImpl( arrayOfListOfA = new ArrayType(new ReferenceTypeImpl(
new ReflectionInterfaceDeclaration(List.class, typeSolver), new ReflectionInterfaceDeclaration(List.class, typeSolver),
ImmutableList.of(new TypeParameter(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList()))), typeSolver)); ImmutableList.of(new TypeVariable(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList()))), typeSolver));
arrayOfListOfStrings = new ArrayType(new ReferenceTypeImpl( arrayOfListOfStrings = new ArrayType(new ReferenceTypeImpl(
new ReflectionInterfaceDeclaration(List.class, typeSolver), new ReflectionInterfaceDeclaration(List.class, typeSolver),
ImmutableList.of(new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)), typeSolver)); ImmutableList.of(new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)), typeSolver));
Expand Down
Expand Up @@ -30,7 +30,7 @@ public void setup() {
arrayOfBooleans = new ArrayType(PrimitiveType.BOOLEAN); arrayOfBooleans = new ArrayType(PrimitiveType.BOOLEAN);
arrayOfListOfA = new ArrayType(new ReferenceTypeImpl( arrayOfListOfA = new ArrayType(new ReferenceTypeImpl(
new ReflectionInterfaceDeclaration(List.class, typeSolver), new ReflectionInterfaceDeclaration(List.class, typeSolver),
ImmutableList.of(new TypeParameter(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList()))), typeSolver)); ImmutableList.of(new TypeVariable(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList()))), typeSolver));
} }


@Test @Test
Expand Down
Expand Up @@ -39,7 +39,7 @@ public void setup() {
arrayOfBooleans = new ArrayType(PrimitiveType.BOOLEAN); arrayOfBooleans = new ArrayType(PrimitiveType.BOOLEAN);
arrayOfListOfA = new ArrayType(new ReferenceTypeImpl( arrayOfListOfA = new ArrayType(new ReferenceTypeImpl(
new ReflectionInterfaceDeclaration(List.class, typeSolver), new ReflectionInterfaceDeclaration(List.class, typeSolver),
ImmutableList.of(new TypeParameter(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList()))), typeSolver)); ImmutableList.of(new TypeVariable(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList()))), typeSolver));


booleanBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Boolean.class, typeSolver), typeSolver); booleanBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Boolean.class, typeSolver), typeSolver);
characterBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Character.class, typeSolver), typeSolver); characterBox = new ReferenceTypeImpl(new ReflectionClassDeclaration(Character.class, typeSolver), typeSolver);
Expand Down
Expand Up @@ -33,7 +33,7 @@ public void setup() {
string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver); string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
listOfA = new ReferenceTypeImpl( listOfA = new ReferenceTypeImpl(
new ReflectionInterfaceDeclaration(List.class, typeSolver), new ReflectionInterfaceDeclaration(List.class, typeSolver),
ImmutableList.of(new TypeParameter(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList()))), typeSolver); ImmutableList.of(new TypeVariable(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList()))), typeSolver);
listOfStrings = new ReferenceTypeImpl( listOfStrings = new ReferenceTypeImpl(
new ReflectionInterfaceDeclaration(List.class, typeSolver), new ReflectionInterfaceDeclaration(List.class, typeSolver),
ImmutableList.of(new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)), typeSolver); ImmutableList.of(new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver)), typeSolver);
Expand Down
Expand Up @@ -30,7 +30,7 @@ public void setup() {
arrayOfBooleans = new ArrayType(PrimitiveType.BOOLEAN); arrayOfBooleans = new ArrayType(PrimitiveType.BOOLEAN);
arrayOfListOfA = new ArrayType(new ReferenceTypeImpl( arrayOfListOfA = new ArrayType(new ReferenceTypeImpl(
new ReflectionInterfaceDeclaration(List.class, typeSolver), new ReflectionInterfaceDeclaration(List.class, typeSolver),
ImmutableList.of(new TypeParameter(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList()))), typeSolver)); ImmutableList.of(new TypeVariable(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList()))), typeSolver));
} }


@Test @Test
Expand Down
Expand Up @@ -31,7 +31,7 @@ class Bar extends Foo { }
private Wildcard extendsA; private Wildcard extendsA;
private Wildcard superString; private Wildcard superString;
private Wildcard extendsString; private Wildcard extendsString;
private TypeParameter a; private TypeVariable a;


@Before @Before
public void setup() { public void setup() {
Expand All @@ -44,7 +44,7 @@ public void setup() {
superBar = Wildcard.superBound(bar); superBar = Wildcard.superBound(bar);
extendsFoo = Wildcard.extendsBound(foo); extendsFoo = Wildcard.extendsBound(foo);
extendsBar = Wildcard.extendsBound(bar); extendsBar = Wildcard.extendsBound(bar);
a = new TypeParameter(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList())); a = new TypeVariable(TypeParameterDeclaration.onClass("A", "foo.Bar", Collections.emptyList()));
superA = Wildcard.superBound(a); superA = Wildcard.superBound(a);
extendsA = Wildcard.extendsBound(a); extendsA = Wildcard.extendsBound(a);
superString = Wildcard.superBound(string); superString = Wildcard.superBound(string);
Expand Down
Expand Up @@ -2,7 +2,7 @@


import me.tomassetti.symbolsolver.model.declarations.TypeParameterDeclaration; import me.tomassetti.symbolsolver.model.declarations.TypeParameterDeclaration;
import me.tomassetti.symbolsolver.model.usages.typesystem.Type; import me.tomassetti.symbolsolver.model.usages.typesystem.Type;
import me.tomassetti.symbolsolver.model.usages.typesystem.TypeParameter; import me.tomassetti.symbolsolver.model.usages.typesystem.TypeVariable;


import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
Expand Down Expand Up @@ -51,7 +51,7 @@ public Type getValue(TypeParameterDeclaration typeParameter) {
if (nameToValue.containsKey(qualifiedName)) { if (nameToValue.containsKey(qualifiedName)) {
return nameToValue.get(qualifiedName); return nameToValue.get(qualifiedName);
} else { } else {
return new TypeParameter(typeParameter); return new TypeVariable(typeParameter);
} }
} }


Expand Down
Expand Up @@ -53,7 +53,7 @@ public ReferenceType(TypeDeclaration typeDeclaration, List<Type> typeParameters,
} }


private static List<Type> deriveParams(TypeDeclaration typeDeclaration) { private static List<Type> deriveParams(TypeDeclaration typeDeclaration) {
return typeDeclaration.getTypeParameters().stream().map((tp) -> new TypeParameter(tp)).collect(Collectors.toList()); return typeDeclaration.getTypeParameters().stream().map((tp) -> new TypeVariable(tp)).collect(Collectors.toList());
} }


public ReferenceType asReferenceType() { public ReferenceType asReferenceType() {
Expand Down
Expand Up @@ -3,13 +3,16 @@
import me.tomassetti.symbolsolver.model.declarations.TypeParameterDeclaration; import me.tomassetti.symbolsolver.model.declarations.TypeParameterDeclaration;


/** /**
* From JLS 4.4: A type variable is introduced by the declaration of a type parameter of a generic class,
* interface, method, or constructor (§8.1.2, §9.1.2, §8.4.4, §8.8.4).
*
* @author Federico Tomassetti * @author Federico Tomassetti
*/ */
public class TypeParameter implements Type { public class TypeVariable implements Type {


private TypeParameterDeclaration typeParameter; private TypeParameterDeclaration typeParameter;


public TypeParameter(TypeParameterDeclaration typeParameter) { public TypeVariable(TypeParameterDeclaration typeParameter) {
this.typeParameter = typeParameter; this.typeParameter = typeParameter;
} }


Expand All @@ -27,7 +30,7 @@ public boolean equals(Object o) {
if (this == o) return true; if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false; if (o == null || getClass() != o.getClass()) return false;


TypeParameter that = (TypeParameter) o; TypeVariable that = (TypeVariable) o;


if (!typeParameter.getName().equals(that.typeParameter.getName())) return false; if (!typeParameter.getName().equals(that.typeParameter.getName())) return false;
if (typeParameter.declaredOnClass() != that.typeParameter.declaredOnClass()) return false; if (typeParameter.declaredOnClass() != that.typeParameter.declaredOnClass()) return false;
Expand Down

0 comments on commit d6a1f32

Please sign in to comment.