2 Commits

Author SHA1 Message Date
NoName11234
4c57ad7561 readded code block for using oderConstraints 2024-04-18 19:45:07 +02:00
NoName11234
04ee12a7ad removed doubled constraints from fc in extended matrix test 2024-04-18 18:33:10 +02:00
3 changed files with 4 additions and 49 deletions

View File

@@ -315,7 +315,7 @@ public class TypeUnifyInitialTask extends RecursiveAction {
UnifyPair fstBasePair = zeroNextElem.removeFirst().getBasePair();
boolean oderConstraint = false;
/*if (fstBasePair != null) {
if (fstBasePair != null) {
boolean sameBase = true;
for (UnifyPair ele : nextSetasList.getFirst()) {//check ob a <. ty base oder ob Ueberladung
sameBase = sameBase && ele.getBasePair() != null && ele.getBasePair().equals(fstBasePair);
@@ -332,7 +332,7 @@ public class TypeUnifyInitialTask extends RecursiveAction {
.map(e -> e.get())
.findAny();
if (xi.isPresent()) {
variance = xi.get();
//variance = xi.get();
}
} else {
oderConstraint = true;

View File

@@ -390,7 +390,7 @@ public class TypeUnifyTask extends RecursiveTask<Set<Set<UnifyPair>>> {
UnifyPair fstBasePair = zeroNextElem.removeFirst().getBasePair();
boolean oderConstraint = false;
/*if (fstBasePair != null) {
if (fstBasePair != null) {
boolean sameBase = true;
for (UnifyPair ele : nextSetasList.getFirst()) {//check ob a <. ty base oder ob Ueberladung
sameBase = sameBase && ele.getBasePair() != null && ele.getBasePair().equals(fstBasePair);
@@ -407,7 +407,7 @@ public class TypeUnifyTask extends RecursiveTask<Set<Set<UnifyPair>>> {
.map(e -> e.get())
.findAny();
if (xi.isPresent()) {
variance = xi.get();
//variance = xi.get();
}
} else {
oderConstraint = true;

View File

@@ -1428,9 +1428,6 @@ public class UnifyTest {
type1 = new ReferenceType("java.lang.Comparable", new TypeParams(new ReferenceType("java.lang.Float")));
type2 = new ReferenceType("java.lang.Object");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("java.lang.Float");
type2 = new ReferenceType("java.lang.Comparable", new TypeParams(new ReferenceType("java.lang.Float")));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
//AbstractList<Vector<java.lang.Integer>> < java.lang.Object, AbstractList<Vector<java.lang.Integer>> < AbstractCollection<Vector<java.lang.Integer>>, Vector<Vector<java.lang.Integer>> < AbstractList<Vector<java.lang.Integer>>, Matrix < AbstractList<Vector<java.lang.Integer>>
type1 = new ReferenceType("AbstractList", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
type2 = new ReferenceType("java.lang.Object");
@@ -1451,9 +1448,6 @@ public class UnifyTest {
type1 = new ReferenceType("Vector", new TypeParams(new PlaceholderType("FED")));
type2 = new ReferenceType("AbstractList", new TypeParams(new PlaceholderType("FED")));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("Vector", new TypeParams(new PlaceholderType("FED")));
type2 = new ReferenceType("AbstractCollection", new TypeParams(new PlaceholderType("FED")));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
//java.lang.constant.ConstantDesc < java.lang.Object, java.lang.constant.ConstantDesc < java.lang.Float, java.lang.constant.ConstantDesc < java.lang.Integer
type1 = new ReferenceType("java.lang.constant.ConstantDesc");
type2 = new ReferenceType("java.lang.Object");
@@ -1468,22 +1462,10 @@ public class UnifyTest {
type1 = new ReferenceType("java.lang.constant.Constable");
type2 = new ReferenceType("java.lang.Object");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("java.lang.Float");
type2 = new ReferenceType("java.lang.constant.Constable");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("java.lang.Integer");
type2 = new ReferenceType("java.lang.constant.Constable");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
//AbstractList<FED> < java.lang.Object, AbstractList<FED> < AbstractCollection<FED>, Vector<FED> < AbstractList<FED>
type1 = new ReferenceType("AbstractList", new TypeParams(new PlaceholderType("FED")));
type2 = new ReferenceType("java.lang.Object");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("AbstractList", new TypeParams(new PlaceholderType("FED")));
type2 = new ReferenceType("AbstractCollection", new TypeParams(new PlaceholderType("FED")));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("Vector", new TypeParams(new PlaceholderType("FED")));
type2 = new ReferenceType("AbstractList", new TypeParams(new PlaceholderType("FED")));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
//java.io.Serializable < java.lang.Object, java.lang.Number < java.io.Serializable, java.lang.Float < java.io.Serializable, java.lang.Integer < java.io.Serializable
type1 = new ReferenceType("java.io.Serializable");
type2 = new ReferenceType("java.lang.Object");
@@ -1491,20 +1473,11 @@ public class UnifyTest {
type1 = new ReferenceType("java.lang.Number");
type2 = new ReferenceType("java.io.Serializable");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("java.lang.Float");
type2 = new ReferenceType("java.io.Serializable");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("java.lang.Integer");
type2 = new ReferenceType("java.io.Serializable");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
//Vector<Vector<java.lang.Integer>> < java.lang.Object, Vector<Vector<java.lang.Integer>> < AbstractList<Vector<java.lang.Integer>>, Vector<Vector<java.lang.Integer>> < AbstractCollection<Vector<java.lang.Integer>>, Matrix < Vector<Vector<java.lang.Integer>>
type1 = new ReferenceType("Vector", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
type2 = new ReferenceType("java.lang.Object");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("Vector", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
type2 = new ReferenceType("AbstractList", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("Vector", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
type2 = new ReferenceType("AbstractCollection", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("Matrix");
@@ -1515,34 +1488,16 @@ public class UnifyTest {
type2 = new ReferenceType("java.lang.Object");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("Matrix");
type2 = new ReferenceType("Vector", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("Matrix");
type2 = new ReferenceType("AbstractList", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("Matrix");
type2 = new ReferenceType("AbstractCollection", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
//AbstractCollection<Vector<java.lang.Integer>> < java.lang.Object, Vector<Vector<java.lang.Integer>> < AbstractCollection<Vector<java.lang.Integer>>, AbstractList<Vector<java.lang.Integer>> < AbstractCollection<Vector<java.lang.Integer>>, Matrix < AbstractCollection<Vector<java.lang.Integer>>
type1 = new ReferenceType("AbstractCollection", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
type2 = new ReferenceType("java.lang.Object");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("Vector", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
type2 = new ReferenceType("AbstractCollection", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("AbstractList", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
type2 = new ReferenceType("AbstractCollection", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("Matrix");
type2 = new ReferenceType("AbstractCollection", new TypeParams(new ReferenceType("Vector", new TypeParams(new ReferenceType("java.lang.Integer")))));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
//java.lang.Comparable<java.lang.Integer> < java.lang.Object, java.lang.Integer < java.lang.Comparable<java.lang.Integer>
type1 = new ReferenceType("java.lang.Comparable", new TypeParams(new ReferenceType("java.lang.Integer")));
type2 = new ReferenceType("java.lang.Object");
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
type1 = new ReferenceType("java.lang.Integer");
type2 = new ReferenceType("java.lang.Comparable", new TypeParams(new ReferenceType("java.lang.Integer")));
constraints.add(new UnifyPair(type1, type2, PairOperator.SMALLER));
FiniteClosure finiteClosure = new FiniteClosure(constraints, new NullWriter());
TypeUnify unifyAlgo = new TypeUnify();