Kovarianz funktioniert nicht wie gewollt. #347
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
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: JavaTX/JavaCompilerCore#347
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?
Im momentanen Testcase beim SwitchAppend wird das Element immer Object.
Dieses Problem sollte durch die Kovarianz des Switch-Statements behoben werden.
Mittels diesem Code-Snippet wird die Kovarianz für das Switch-Statement gesetzt:
Hier nochmal der Code in dem die Constraints erstellt werden.
Das Problem, das die Elemente der Liste immernoch vom Typ Object sind, wird dadurch jedoch nicht behoben.
Info
Ich habe das Ganze jetzt mit dem neusten Commit ausgeführt und es gibt jetzt tatsächlich den gemeinsamen Typ an.
Nur leider passiert das auch wenn ein default case dabei ist. Sollte hier nicht immer Object raus kommen? @RubenKraft Ich glaube du musst noch einen Constraint bei default einfügen.
Alles klar, danke dir! Dann hab ich irgendwas verpeilt.
@dholle: Sobald der Default-Case dabei ist wird der Typ zu Object, oder?
Andernfalls wird das ein bisschen kompliziert.
Momentan wird im Code der Default-Case folgendermaßen abgefangen:
Ohne Pattern gibts aber entsprechend auch kein Typ.
Ich hab jetzt ein Constraint gepusht, dass das Problem beheben sollte.
Kannst du dir gerne mal hier anschauen: #406f98e55d