modified: src/de/dhbwstuttgart/typeinference/unify/RuleSet.java

Reduce 1
C und D koennen auch gleich sein.
Muss nochmals ueberprueft werden.
This commit is contained in:
Martin Plümicke 2018-02-09 22:55:40 +01:00
parent f0610aeff1
commit 87fe51767c

View File

@ -241,6 +241,20 @@ public class RuleSet implements IRuleSet{
UnifyType cFromFc = fc.getLeftHandedType(c.getName()).orElse(null);
NOCHMAL UEBERPRUEFEN
//PL 18-02-09 Eingfuegt Anfang
//C und D koennen auch gleich sein.
if (c.getName().equals(d.getName())) {
Set<UnifyPair> result = new HashSet<>();
TypeParams rhsTypeParams = d.getTypeParams();
TypeParams lhsTypeParams = c.getTypeParams();
for(int rhsIdx = 0; rhsIdx < c.getTypeParams().size(); rhsIdx++)
result.add(new UnifyPair(lhsTypeParams.get(rhsIdx), rhsTypeParams.get(rhsIdx), PairOperator.SMALLERDOTWC));
return Optional.of(result);
}
//PL 18-02-09 Eingfuegt ENDE
if(cFromFc == null || !cFromFc.getTypeParams().arePlaceholders())
return Optional.empty();