forked from JavaTX/JavaCompilerCore
Refactor bounds to make the invocation smaller
This commit is contained in:
parent
97a1bcbbe1
commit
4bcb91ce2d
@ -3,9 +3,7 @@ import java.util.Vector;
|
|||||||
public class TestVector {
|
public class TestVector {
|
||||||
|
|
||||||
m(v, w) {
|
m(v, w) {
|
||||||
var a = v.elementAt(0);
|
w.addElement(id(v.elementAt(0)));
|
||||||
var b = id(a);
|
|
||||||
w.addElement(b);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
id(x) {
|
id(x) {
|
||||||
|
@ -6,5 +6,19 @@ import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public record Bound(boolean isOnMethod, RefTypeOrTPHOrWildcardOrGeneric bound) {
|
public record Bound(boolean isOnMethod, RefTypeOrTPHOrWildcardOrGeneric bound) {
|
||||||
|
public static Bound onMethod(String tph) {
|
||||||
|
return new Bound(true, TypePlaceholder.of(tph));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Bound onMethod(RefTypeOrTPHOrWildcardOrGeneric bound) {
|
||||||
|
return new Bound(true, bound);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Bound onClass(String tph) {
|
||||||
|
return new Bound(false, TypePlaceholder.of(tph));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Bound onClass(RefTypeOrTPHOrWildcardOrGeneric bound) {
|
||||||
|
return new Bound(false, bound);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,10 +7,11 @@ import de.dhbwstuttgart.syntaxtree.Method;
|
|||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
||||||
import de.dhbwstuttgart.target.generate.ASTToTargetAST;
|
import de.dhbwstuttgart.target.generate.ASTToTargetAST;
|
||||||
|
import static de.dhbwstuttgart.target.generate.ASTToTargetAST.OBJECT;
|
||||||
import de.dhbwstuttgart.target.generate.Bound;
|
import de.dhbwstuttgart.target.generate.Bound;
|
||||||
|
import static de.dhbwstuttgart.target.generate.Bound.*;
|
||||||
import de.dhbwstuttgart.target.generate.BoundsList;
|
import de.dhbwstuttgart.target.generate.BoundsList;
|
||||||
import de.dhbwstuttgart.target.generate.GenericsResult;
|
import de.dhbwstuttgart.target.generate.GenericsResult;
|
||||||
import org.junit.Ignore;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
@ -23,7 +24,7 @@ import java.util.List;
|
|||||||
|
|
||||||
public class TestGenerics {
|
public class TestGenerics {
|
||||||
|
|
||||||
private static final String rootDirectory = System.getProperty("user.dir") + "/resources/insertGenericsJav/";
|
private static final String rootDirectory = System.getProperty("user.dir") + "/resources/insertGenerics/javFiles/";
|
||||||
private static final String bytecodeDirectory = System.getProperty("user.dir") + "/src/test/resources/testBytecode/generatedBC/";
|
private static final String bytecodeDirectory = System.getProperty("user.dir") + "/src/test/resources/testBytecode/generatedBC/";
|
||||||
|
|
||||||
private record Result(List<GenericsResult> genericsResults, ClassOrInterface clazz) {
|
private record Result(List<GenericsResult> genericsResults, ClassOrInterface clazz) {
|
||||||
@ -60,12 +61,12 @@ public class TestGenerics {
|
|||||||
|
|
||||||
var ECK1 = generics.getBounds(otherMethod.getParameterList().getParameterAt(0).getType(), result.clazz, anyMethod);
|
var ECK1 = generics.getBounds(otherMethod.getParameterList().getParameterAt(0).getType(), result.clazz, anyMethod);
|
||||||
var ECK2 = generics.getBounds(otherMethod.getReturnType(), result.clazz, anyMethod);
|
var ECK2 = generics.getBounds(otherMethod.getReturnType(), result.clazz, anyMethod);
|
||||||
var ECKChain = new BoundsList(new Bound(false, ASTToTargetAST.OBJECT));
|
var ECKChain = new BoundsList(onClass(OBJECT));
|
||||||
assertEquals(ECK1, ECK2);
|
assertEquals(ECK1, ECK2);
|
||||||
assertEquals(ECK2, generics.getBounds(b.getType(), result.clazz));
|
assertEquals(ECK2, generics.getBounds(b.getType(), result.clazz));
|
||||||
|
|
||||||
var M = generics.getBounds(a.getType(), result.clazz);
|
var M = generics.getBounds(a.getType(), result.clazz);
|
||||||
var MChain = new BoundsList(new Bound(false, TypePlaceholder.of("ECK")), new Bound(false, ASTToTargetAST.OBJECT));
|
var MChain = new BoundsList(onClass("ECK"), onClass(OBJECT));
|
||||||
assertEquals(M, MChain);
|
assertEquals(M, MChain);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,7 +80,7 @@ public class TestGenerics {
|
|||||||
assertEquals(0, generics.get(fReturn).size());
|
assertEquals(0, generics.get(fReturn).size());
|
||||||
|
|
||||||
var N = generics.getBounds(fReturn.getReturnType(), result.clazz);
|
var N = generics.getBounds(fReturn.getReturnType(), result.clazz);
|
||||||
var NChain = new BoundsList(new Bound(false, ASTToTargetAST.OBJECT));
|
var NChain = new BoundsList(onClass(OBJECT));
|
||||||
assertEquals(N, NChain);
|
assertEquals(N, NChain);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,7 +98,7 @@ public class TestGenerics {
|
|||||||
var N = generics.getBounds(m.getParameterList().getParameterAt(0).getType(), result.clazz, m);
|
var N = generics.getBounds(m.getParameterList().getParameterAt(0).getType(), result.clazz, m);
|
||||||
var N2 = generics.getBounds(m.getReturnType(), result.clazz, m);
|
var N2 = generics.getBounds(m.getReturnType(), result.clazz, m);
|
||||||
|
|
||||||
var NChain = new BoundsList(new Bound(true, ASTToTargetAST.OBJECT));
|
var NChain = new BoundsList(onMethod(OBJECT));
|
||||||
assertEquals(N, N2);
|
assertEquals(N, N2);
|
||||||
assertEquals(N2, NChain);
|
assertEquals(N2, NChain);
|
||||||
|
|
||||||
@ -123,13 +124,13 @@ public class TestGenerics {
|
|||||||
assertEquals(2, generics.get(m).size());
|
assertEquals(2, generics.get(m).size());
|
||||||
|
|
||||||
var R = generics.getBounds(a.getType(), result.clazz);
|
var R = generics.getBounds(a.getType(), result.clazz);
|
||||||
var RChain = new BoundsList(new Bound(false, ASTToTargetAST.OBJECT));
|
var RChain = new BoundsList(onClass(OBJECT));
|
||||||
assertEquals(R, RChain);
|
assertEquals(R, RChain);
|
||||||
|
|
||||||
var O = generics.getBounds(id.getParameterList().getParameterAt(0).getType(), result.clazz, id);
|
var O = generics.getBounds(id.getParameterList().getParameterAt(0).getType(), result.clazz, id);
|
||||||
var AB = generics.getBounds(id.getReturnType(), result.clazz, id);
|
var AB = generics.getBounds(id.getReturnType(), result.clazz, id);
|
||||||
assertEquals(O, AB);
|
assertEquals(O, AB);
|
||||||
assertEquals(AB, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(AB, new BoundsList(onMethod(OBJECT)));
|
||||||
|
|
||||||
var S = generics.getBounds(setA.getParameterList().getParameterAt(0).getType(), result.clazz, setA);
|
var S = generics.getBounds(setA.getParameterList().getParameterAt(0).getType(), result.clazz, setA);
|
||||||
assertEquals(S, RChain);
|
assertEquals(S, RChain);
|
||||||
@ -137,7 +138,7 @@ public class TestGenerics {
|
|||||||
|
|
||||||
var X = generics.getBounds(m.getParameterList().getParameterAt(0).getType(), result.clazz, m);
|
var X = generics.getBounds(m.getParameterList().getParameterAt(0).getType(), result.clazz, m);
|
||||||
var Y = generics.getBounds(m.getParameterList().getParameterAt(1).getType(), result.clazz, m);
|
var Y = generics.getBounds(m.getParameterList().getParameterAt(1).getType(), result.clazz, m);
|
||||||
var XChain = new BoundsList(new Bound(true, ASTToTargetAST.OBJECT));
|
var XChain = new BoundsList(onMethod(OBJECT));
|
||||||
assertEquals(X, XChain);
|
assertEquals(X, XChain);
|
||||||
assertEquals(Y, X);
|
assertEquals(Y, X);
|
||||||
}
|
}
|
||||||
@ -163,25 +164,25 @@ public class TestGenerics {
|
|||||||
assertEquals(3, generics.get(main).size());
|
assertEquals(3, generics.get(main).size());
|
||||||
|
|
||||||
var N = generics.getBounds(a.getType(), result.clazz);
|
var N = generics.getBounds(a.getType(), result.clazz);
|
||||||
assertEquals(N, new BoundsList(new Bound(false, ASTToTargetAST.OBJECT)));
|
assertEquals(N, new BoundsList(onClass(OBJECT)));
|
||||||
|
|
||||||
var P = generics.getBounds(id.getParameterList().getParameterAt(0).getType(), result.clazz, id);
|
var P = generics.getBounds(id.getParameterList().getParameterAt(0).getType(), result.clazz, id);
|
||||||
var O = generics.getBounds(id.getReturnType(), result.clazz, id);
|
var O = generics.getBounds(id.getReturnType(), result.clazz, id);
|
||||||
assertEquals(P, O);
|
assertEquals(P, O);
|
||||||
assertEquals(O, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(O, new BoundsList(onMethod(OBJECT)));
|
||||||
|
|
||||||
assertEquals(generics.resolve(m.getParameterList().getParameterAt(0).getType()), generics.resolve(m.getReturnType()));
|
assertEquals(generics.resolve(m.getParameterList().getParameterAt(0).getType()), generics.resolve(m.getReturnType()));
|
||||||
var Y = generics.getBounds(m.getParameterList().getParameterAt(0).getType(), result.clazz, m);
|
var Y = generics.getBounds(m.getParameterList().getParameterAt(0).getType(), result.clazz, m);
|
||||||
var AA = generics.getBounds(m.getParameterList().getParameterAt(1).getType(), result.clazz, m);
|
var AA = generics.getBounds(m.getParameterList().getParameterAt(1).getType(), result.clazz, m);
|
||||||
assertEquals(Y, AA);
|
assertEquals(Y, AA);
|
||||||
assertEquals(AA, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(AA, new BoundsList(onMethod(OBJECT)));
|
||||||
|
|
||||||
var AI = generics.getBounds(m.getParameterList().getParameterAt(0).getType(), result.clazz, m);
|
var AI = generics.getBounds(m.getParameterList().getParameterAt(0).getType(), result.clazz, m);
|
||||||
var AJ = generics.getBounds(m.getParameterList().getParameterAt(1).getType(), result.clazz, m);
|
var AJ = generics.getBounds(m.getParameterList().getParameterAt(1).getType(), result.clazz, m);
|
||||||
var AH = generics.getBounds(m.getReturnType(), result.clazz, m);
|
var AH = generics.getBounds(m.getReturnType(), result.clazz, m);
|
||||||
assertEquals(AI, AJ);
|
assertEquals(AI, AJ);
|
||||||
assertEquals(AJ, AH);
|
assertEquals(AJ, AH);
|
||||||
assertEquals(AH, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(AH, new BoundsList(onMethod(OBJECT)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -193,7 +194,7 @@ public class TestGenerics {
|
|||||||
assertEquals(1, generics.get(anyMethod).size());
|
assertEquals(1, generics.get(anyMethod).size());
|
||||||
|
|
||||||
var M = generics.getBounds(anyMethod.getReturnType(), result.clazz, anyMethod);
|
var M = generics.getBounds(anyMethod.getReturnType(), result.clazz, anyMethod);
|
||||||
assertEquals(M, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(M, new BoundsList(onMethod(OBJECT)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -207,12 +208,12 @@ public class TestGenerics {
|
|||||||
var generics = result.genericsResults.get(0);
|
var generics = result.genericsResults.get(0);
|
||||||
var M = generics.getBounds(a.getType(), result.clazz);
|
var M = generics.getBounds(a.getType(), result.clazz);
|
||||||
var DYX = generics.getBounds(b.getType(), result.clazz);
|
var DYX = generics.getBounds(b.getType(), result.clazz);
|
||||||
var MChain = new BoundsList(new Bound(false, TypePlaceholder.of("DYX")), new Bound(false, ASTToTargetAST.OBJECT));
|
var MChain = new BoundsList(onClass("DYX"), onClass(OBJECT));
|
||||||
var DYXChain = new BoundsList(new Bound(false, ASTToTargetAST.OBJECT));
|
var DYXChain = new BoundsList(onClass(OBJECT));
|
||||||
assertEquals(M, MChain);
|
assertEquals(M, MChain);
|
||||||
|
|
||||||
var Q = generics.getBounds(anyMethod.getReturnType(), result.clazz, anyMethod);
|
var Q = generics.getBounds(anyMethod.getReturnType(), result.clazz, anyMethod);
|
||||||
assertEquals(Q, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(Q, new BoundsList(onMethod(OBJECT)));
|
||||||
|
|
||||||
System.out.println(otherMethod.getReturnType());
|
System.out.println(otherMethod.getReturnType());
|
||||||
var DYX2 = generics.getBounds(otherMethod.getReturnType(), result.clazz, otherMethod);
|
var DYX2 = generics.getBounds(otherMethod.getReturnType(), result.clazz, otherMethod);
|
||||||
@ -235,17 +236,17 @@ public class TestGenerics {
|
|||||||
var generics = result.genericsResults.get(0);
|
var generics = result.genericsResults.get(0);
|
||||||
var U = generics.getBounds(id2.getParameterList().getParameterAt(0).getType(), result.clazz, id2);
|
var U = generics.getBounds(id2.getParameterList().getParameterAt(0).getType(), result.clazz, id2);
|
||||||
var FPT = generics.getBounds(id2.getReturnType(), result.clazz, id2);
|
var FPT = generics.getBounds(id2.getReturnType(), result.clazz, id2);
|
||||||
assertEquals(U, new BoundsList(new Bound(true, TypePlaceholder.of("FPT")), new Bound(false, ASTToTargetAST.OBJECT)));
|
assertEquals(U, new BoundsList(onMethod("FPT"), onClass(OBJECT)));
|
||||||
assertEquals(FPT, new BoundsList(new Bound(false, ASTToTargetAST.OBJECT)));
|
assertEquals(FPT, new BoundsList(onClass(OBJECT)));
|
||||||
|
|
||||||
var AA = generics.getBounds(m.getReturnType(), result.clazz, m);
|
var AA = generics.getBounds(m.getReturnType(), result.clazz, m);
|
||||||
var AC = generics.getBounds(m.getParameterList().getParameterAt(1).getType(), result.clazz, m);
|
var AC = generics.getBounds(m.getParameterList().getParameterAt(1).getType(), result.clazz, m);
|
||||||
assertEquals(AA, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(AA, new BoundsList(onMethod(OBJECT)));
|
||||||
assertEquals(AC, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(AC, new BoundsList(onMethod(OBJECT)));
|
||||||
|
|
||||||
var AH = generics.getBounds(m2.getReturnType(), result.clazz, m2);
|
var AH = generics.getBounds(m2.getReturnType(), result.clazz, m2);
|
||||||
var AL = generics.getBounds(m2.getParameterList().getParameterAt(0).getType(), result.clazz, m2);
|
var AL = generics.getBounds(m2.getParameterList().getParameterAt(0).getType(), result.clazz, m2);
|
||||||
assertEquals(AH, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(AH, new BoundsList(onMethod(OBJECT)));
|
||||||
assertEquals(AH, AL);
|
assertEquals(AH, AL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -262,32 +263,32 @@ public class TestGenerics {
|
|||||||
var generics = result.genericsResults.get(0);
|
var generics = result.genericsResults.get(0);
|
||||||
var AO = generics.getBounds(a.getType(), result.clazz);
|
var AO = generics.getBounds(a.getType(), result.clazz);
|
||||||
var AOBound = new BoundsList(
|
var AOBound = new BoundsList(
|
||||||
new Bound(false, TypePlaceholder.of("Y")),
|
onClass("Y"),
|
||||||
new Bound(false, TypePlaceholder.of("AK")),
|
onClass("AK"),
|
||||||
new Bound(false, TypePlaceholder.of("AE")),
|
onClass("AE"),
|
||||||
new Bound(false, ASTToTargetAST.OBJECT)
|
onClass(OBJECT)
|
||||||
);
|
);
|
||||||
assertEquals(AO, AOBound);
|
assertEquals(AO, AOBound);
|
||||||
|
|
||||||
var S = generics.getBounds(setA.getParameterList().getParameterAt(0).getType(), result.clazz, setA);
|
var S = generics.getBounds(setA.getParameterList().getParameterAt(0).getType(), result.clazz, setA);
|
||||||
var c = new ArrayList<Bound>();
|
var c = new ArrayList<Bound>();
|
||||||
c.add(new Bound(true, TypePlaceholder.of("AO")));
|
c.add(onMethod("AO"));
|
||||||
c.addAll(AOBound);
|
c.addAll(AOBound);
|
||||||
var SChain = new BoundsList(c);
|
var SChain = new BoundsList(c);
|
||||||
assertEquals(S, SChain);
|
assertEquals(S, SChain);
|
||||||
|
|
||||||
var Y = generics.getBounds(m.getParameterList().getParameterAt(1).getType(), result.clazz, m);
|
var Y = generics.getBounds(m.getParameterList().getParameterAt(1).getType(), result.clazz, m);
|
||||||
var YChain = new BoundsList(new Bound(true, TypePlaceholder.of("AE")), new Bound(false, ASTToTargetAST.OBJECT));
|
var YChain = new BoundsList(onMethod("AE"), onClass(OBJECT));
|
||||||
var AE = generics.getBounds(m.getReturnType(), result.clazz, m);
|
var AE = generics.getBounds(m.getReturnType(), result.clazz, m);
|
||||||
assertEquals(Y, YChain);
|
assertEquals(Y, YChain);
|
||||||
assertEquals(AE, new BoundsList(new Bound(false, ASTToTargetAST.OBJECT)));
|
assertEquals(AE, new BoundsList(onClass(OBJECT)));
|
||||||
|
|
||||||
// TODO main seems to change between runs
|
// TODO main seems to change between runs
|
||||||
/*var AE2 = generics.getBounds(main.getReturnType(), result.clazz, main);
|
/*var AE2 = generics.getBounds(main.getReturnType(), result.clazz, main);
|
||||||
var AF = generics.getBounds(main.getParameterList().getParameterAt(0).getType(), result.clazz, main);
|
var AF = generics.getBounds(main.getParameterList().getParameterAt(0).getType(), result.clazz, main);
|
||||||
var AG = generics.getBounds(main.getParameterList().getParameterAt(1).getType(), result.clazz, main);
|
var AG = generics.getBounds(main.getParameterList().getParameterAt(1).getType(), result.clazz, main);
|
||||||
assertEquals(AE, AE2));
|
assertEquals(AE, AE2));
|
||||||
assertEquals(AF, new BoundsList(new Bound(true, TypePlaceholder.of("AK")), new Bound(true, TypePlaceholder.of("AE")), new Bound(false, ASTToTargetAST.OBJECT))));
|
assertEquals(AF, new BoundsList(onMethod("AK"), onMethod("AE"), onClass(OBJECT))));
|
||||||
assertEquals(AG, SChain));*/
|
assertEquals(AG, SChain));*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -307,15 +308,15 @@ public class TestGenerics {
|
|||||||
var O = generics.getBounds(id.getReturnType(), result.clazz, id);
|
var O = generics.getBounds(id.getReturnType(), result.clazz, id);
|
||||||
var O2 = generics.getBounds(id.getParameterList().getParameterAt(0).getType(), result.clazz, id);
|
var O2 = generics.getBounds(id.getParameterList().getParameterAt(0).getType(), result.clazz, id);
|
||||||
assertEquals(O, O2);
|
assertEquals(O, O2);
|
||||||
assertEquals(O2, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(O2, new BoundsList(onMethod(OBJECT)));
|
||||||
|
|
||||||
// TODO Maybe test in other ways if the parameter generics equals the return generics
|
// TODO Maybe test in other ways if the parameter generics equals the return generics
|
||||||
var S = generics.getBounds(main.getReturnType(), result.clazz, main);
|
var S = generics.getBounds(main.getReturnType(), result.clazz, main);
|
||||||
var S2 = generics.getBounds(main.getParameterList().getParameterAt(0).getType(), result.clazz, main);
|
var S2 = generics.getBounds(main.getParameterList().getParameterAt(0).getType(), result.clazz, main);
|
||||||
var T = generics.getBounds(main.getParameterList().getParameterAt(1).getType(), result.clazz, main);
|
var T = generics.getBounds(main.getParameterList().getParameterAt(1).getType(), result.clazz, main);
|
||||||
assertEquals(S, S2);
|
assertEquals(S, S2);
|
||||||
assertEquals(S2, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(S2, new BoundsList(onMethod(OBJECT)));
|
||||||
assertEquals(T, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(T, new BoundsList(onMethod(OBJECT)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -330,11 +331,11 @@ public class TestGenerics {
|
|||||||
|
|
||||||
var S = generics.getBounds(((RefType) par1).getParaList().get(0), result.clazz, m);
|
var S = generics.getBounds(((RefType) par1).getParaList().get(0), result.clazz, m);
|
||||||
var ACM = generics.getBounds(((RefType) par2).getParaList().get(0), result.clazz, m);
|
var ACM = generics.getBounds(((RefType) par2).getParaList().get(0), result.clazz, m);
|
||||||
assertEquals(S, new BoundsList(new Bound(true, TypePlaceholder.of("V")), new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(S, new BoundsList(onMethod("V"), onMethod(OBJECT)));
|
||||||
assertEquals(ACM, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(ACM, new BoundsList(onMethod(OBJECT)));
|
||||||
|
|
||||||
var Y = generics.getBounds(id.getParameterList().getParameterAt(0).getType(), result.clazz, id);
|
var Y = generics.getBounds(id.getParameterList().getParameterAt(0).getType(), result.clazz, id);
|
||||||
assertEquals(Y, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(Y, new BoundsList(onMethod(OBJECT)));
|
||||||
assertEquals(Y, generics.getBounds(id.getReturnType(), result.clazz, id));
|
assertEquals(Y, generics.getBounds(id.getReturnType(), result.clazz, id));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -348,8 +349,8 @@ public class TestGenerics {
|
|||||||
var par1 = generics.resolve(add.getParameterList().getParameterAt(0).getType());
|
var par1 = generics.resolve(add.getParameterList().getParameterAt(0).getType());
|
||||||
var ACK = generics.getBounds(((RefType) par1).getParaList().get(0), result.clazz, add);
|
var ACK = generics.getBounds(((RefType) par1).getParaList().get(0), result.clazz, add);
|
||||||
var O = generics.getBounds(add.getParameterList().getParameterAt(1).getType(), result.clazz, add);
|
var O = generics.getBounds(add.getParameterList().getParameterAt(1).getType(), result.clazz, add);
|
||||||
assertEquals(ACK, new BoundsList(new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(ACK, new BoundsList(onMethod(OBJECT)));
|
||||||
assertEquals(O, new BoundsList(new Bound(true, TypePlaceholder.of("ACK")), new Bound(true, ASTToTargetAST.OBJECT)));
|
assertEquals(O, new BoundsList(onMethod("ACK"), onMethod(OBJECT)));
|
||||||
|
|
||||||
var par2 = generics.resolve(main.getParameterList().getParameterAt(0).getType());
|
var par2 = generics.resolve(main.getParameterList().getParameterAt(0).getType());
|
||||||
var ACK2 = generics.getBounds(((RefType) par2).getParaList().get(0), result.clazz, add);
|
var ACK2 = generics.getBounds(((RefType) par2).getParaList().get(0), result.clazz, add);
|
||||||
|
Loading…
Reference in New Issue
Block a user