Fehler mit unitiliserten localen Variablen #15
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#15
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?
import java.util.Vector;
class Overloading{
}
}
liefert bei der Ausführung von:
class MainOverloading {
public static void main(String[] args) {
Overloading ol = new Overloading();
Object i = ol.main();
System.out.println(i);
}
}
folgenden Fehler:
Exception in thread "main" java.lang.VerifyError: Bad local variable type
Exception Details:
Location:
Overloading.main()Ljava/lang/Number; @9: aload_3
Reason:
Type top (current frame, locals[3]) is not assignable to reference type
Current Frame:
bci: @9
flags: { }
locals: { 'Overloading', top, 'Overloading' }
stack: { 'Overloading' }
Bytecode:
0x0000000: bb00 0459 b700 194d 2c2d b600 1bb0
Ich hab einen Test geschrieben, der auch von Java ausgeführt werden kann.
import java.util.Vector;
class UninitializedVariable{
}
}
Beim Compilieren mit java erscheint der folgende Fehler:
UninitializedVariable.java:13: error: variable v might not have been initialized
ol.method(v);
^
1 error
Das ist natürlich ein Argument. Halt ziemlich schlecht, dass der Compiler keinen Fehler gibt. So dass erst zur Laufzeit der Fehler kommt. Aber kann man wohl grad nichts machen.