Die Gruppierung war falsch, Object & Object sind logischerweise auch gleich (In diesem Fall hat es nicht geklappt weil beides Generics waren).
1:
append(Cons, Object)
append(Empty…
Ich habe mich jetzt mal dran gesetzt und ein weiteres Problem gefunden. Hier werden von der Typinferenz 6 Methoden generiert:
append(Cons, Object)
append(Cons, Empty)
append(Cons,…
Was ich nicht ganz verstehe ist wieso List
hier nirgendwo auftaucht, das sollte doch der allgemeinste Typ sein...
Das Problem waren die Generics und die genesteten Patterns, jetzt scheint es zu funktionieren:
public <AU, ABQ, AEC extends ABQ> Cons<AEC> append(Cons<ABQ> var1, AU var2)
…
Ich habe den Code nochmal angepasst, es liefert aber immernoch nicht das richtige Ergebnis. Jetzt werden zwei neue Constraints generiert:
(Cons<AT> =. Cons<ABQ>), (AR <. ABQ)
Müss…
Der Code ist hier: f0287c4611/src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
…
Ich glaube ich hatte damals gesagt man kann einfach den TPH aus der Klasse rausziehen, aber das funktioniert für GTVs so scheinbar nicht?
Hier ist der Rest vom output:
Unify nach Oder-Constraints-Anpassung:
UND:[(List<T> <. List<T>, )@6 in PatternMatchingListAppend.jav, (java.lang.Record =. java.lang.Record, ), (T <. T, )@6…