forked from JavaTX/JavaCompilerCore
modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java Oder-Constraints als Subsitutions zu den Substitutions der UnifyPairs hinzugefuegt.
This commit is contained in:
parent
3ce60eec8d
commit
e72310278d
@ -1233,6 +1233,9 @@ public class TypeUnifyTask extends RecursiveTask<Set<Set<UnifyPair>>> {
|
||||
if (!oderConstraintsVariance.isEmpty()) {
|
||||
Set<Set<UnifyPair>> ret = oderConstraintsVariance.get(0);
|
||||
oderConstraintsOutput.remove(ret);
|
||||
//Set<UnifyPair> retFlat = new HashSet<>();
|
||||
//ret.stream().forEach(x -> retFlat.addAll(x));
|
||||
ret.stream().forEach(x -> x.stream().forEach(y -> y.addSubstitutions(x)));
|
||||
result.get(8).add(ret);
|
||||
first = false;
|
||||
}
|
||||
@ -1242,7 +1245,11 @@ public class TypeUnifyTask extends RecursiveTask<Set<Set<UnifyPair>>> {
|
||||
|
||||
if (eq2sAsList.isEmpty() && first) {//Alle eq2s sind empty und alle oderConstraints mit Variance != 0 sind bearbeitet
|
||||
if (!oderConstraintsOutput.isEmpty()) {
|
||||
result.get(8).add(oderConstraintsOutput.remove(0));
|
||||
Set<Set<UnifyPair>> ret = oderConstraintsOutput.remove(0);
|
||||
//Set<UnifyPair> retFlat = new HashSet<>();
|
||||
//ret.stream().forEach(x -> retFlat.addAll(x));
|
||||
ret.stream().forEach(x -> x.stream().forEach(y -> y.addSubstitutions(x)));
|
||||
result.get(8).add(ret);
|
||||
first = false;
|
||||
}
|
||||
}
|
||||
|
@ -121,6 +121,10 @@ public class UnifyPair {
|
||||
pairOp = po;
|
||||
}
|
||||
|
||||
public void addSubstitutions(Set<UnifyPair> sup) {
|
||||
substitution.addAll(sup);
|
||||
}
|
||||
|
||||
public byte getVariance() {
|
||||
return variance;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user