Interger <* Comparable<Integer> #258
Labels
No Label
Codegen
confirmed
duplicate
Eclipse-Plugin
Feature Request
generics
in progress
invalid
JavaCompilerCore
needs info
Parser
Trash
Type
Unify
won't fix
works for me
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: JavaTX/JavaCompilerCore#258
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem: Für Integer <. A wird vermutlich für in greater { Integer, Comparable, Comparable<? extends Integer>, Comparable<? extends Comparable>, usw.} erzeugt.
Lösungsansatz (geht aber nicht)
für rekursiven Klassendeklarations-Vererbungen sollte für
Integer <. A
immer nur A = Integer und A = Comparable generiert werden.
Wenn dann
A <. Comparable<? extends Comparable>
gelöst werden muss, wird mit den adapt-Regeln eine Lösung gefunden.
Aber mit
Comparable<? extends Integer> <. A
klappt es nicht mehr.
Das Problem ist behoben, in dem rekursive Aufruf in der Methode greater ausgeschlosen sind.
Das reduziert Lösungen
Integer <. Comparable<Comparable>
müsste über adapt gehen
Aber
Integer <. a
Comparable <. a
würde zu einem Fehler führen, da
Integer <. a wird zu a =. Integer,
dann wird
Comparable <. a zu Comparable <. Integer
=> Fehler