diff --git a/src/de/dhbwstuttgart/typeinference/KarthesischesProdukt.java b/src/de/dhbwstuttgart/typeinference/KarthesischesProdukt.java index 09418a0e4..88aba4e2c 100755 --- a/src/de/dhbwstuttgart/typeinference/KarthesischesProdukt.java +++ b/src/de/dhbwstuttgart/typeinference/KarthesischesProdukt.java @@ -54,6 +54,10 @@ public class KarthesischesProdukt { private Vector> karthesischesProdukt(Vector m1, Vector m2){ Vector> ret = new Vector>(); + if(m2.size() == 0){//Sonderfall, m2 ist leer: + ret.add(m1); + return ret; //Die restliche Berechnungen können übersprungen werden. + } //for(M o1 : m1){ for(M o2 : m2){ Vector v1 = new Vector(); diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.java b/src/de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.java index 9787b5b4f..162b6ac84 100755 --- a/src/de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.java +++ b/src/de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.java @@ -327,7 +327,7 @@ public class TypeAssumptions { for(GenericVarAssumption ass : this.genericVarAssumptions){ //if(ass.inheritsType(t))return t; if(ass.getIdentifier().equals(t.getName())){ - if(! ass.getAssumedType().getParentClass().getName().equals(this.thisClassName)){ + if(! ass.getAssumedType().getParentClass().equals(t.getParentClass())){ //Ist die Generische Variable nicht aus dieser Klasse, so muss sie zu einem TPH umgewandelt werden: return new ConstraintType(ass.getAssumedType().getTypePlaceHolder(inNode)); }