Erzeugen von Bytecode, wenn keine Lösung mehr auswählbar ist #178
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#178
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 Moment wird die Bytecodegen-Methode nur aufgerufen, wenn genau eine Typisierung möglich ist.
Es sollte aber auch dann Bytecode erzeugt, wenn keine Lösung mehr auswählbar ist, auch wenn intern noch mehrere Möglichkeiten möglich sind.
Ergänzung:
Wenn nur eine Lösung auswählbar ist, dann soll für diese Bytecode erzeugt werden.
Änderungen durchgeführt. Siehe Commit 72dc22ff1d29615c2b7be51ed64322a65eab4a35
Scheint noch so ganz zu funktionieren.
Für folgende beiden Beispiel wird kein Bytecode erzeugt, obwohl keine Typen mehr einsetzbar sind.
1.)
import java.util.Vector;
class Vector_Add {
<E1660369676, D> java.lang.Integer vector_add(java.util.Vector x,D y) {
java.lang.Integer i;
i = 0;
java.lang.Integer ret;
ret = 0;
while (i < x.size()) {
}
return ret;
}
}
2.)
class Lambda_Bsp {
<BDV, BDU extends BDV, ABN extends Fun1<R1186679466, java.lang.String>, R1186679466 extends BDU>
Fun1<? extends BDV, ? super Fun1<R1186679466, java.lang.String>> lambda = (f)-> f.apply("str");
}
(In reply to Martin Plümicke from comment #3)
Hier liegt der Fehler daran, dass ein Bug in der Bytecodegenerierung auftritt. Die Bytecodegenerierung wird also aufgerufen.
Das gleiche bei diesem Beispiel