Ich hab einen Test geschrieben, der auch von Java ausgeführt werden kann.
import java.util.Vector;
class UninitializedVariable{
Integer method(Integer v) {
return v;
}
public static…
Bytecode wird richtig erzeugt. Fehler liegt nun an der StackMapTable.
java.lang.VerifyError: Instruction type does not match stack map Exception Details: Location: OL.m(Ljava/lang/Bool…
Funktioniert jetzt. Lag nicht an den Typen, sondern an der fehlerhaften Implementierung von Variablen
Fehler triff auf, da beim GenericTypeVar die Methode getBytecodeType nicht implementiert ist.
Test: IdentityFieldTest umgesetzt
Trace:
java.lang.NullPointerException at de.dhbwstuttgart.syntaxtree.type.RefType.getCombinedType(RefType.java:862) at de.dhbwstuttgart.syntaxtree.type.R…
Änderung ist möglich, ist aber schlecht, da sonst keine automatisierten Tests mit reflektion verwendet werden können.
Welchen Wert muss eine Variable erhalten, wenn ihr keinen Wert zugewiesen wird. Wahrscheinlich null, wie setz ich das um?
Wir können die Syntax mit %-Zeichen nicht verwenden. Die wird als nicht erlaubter Klassennamen erkannt.
java.lang.ClassFormatError: Illegal class name "Ljava%util%Vector%%java%lang%Integer%;…
Funktioniert noch nicht:
java.lang.VerifyError: Call to wrong method Exception Details: Location: NewStatement.methode()V @4: invokespecial Reason: Type 'java%util%Vector%…
Problem liegt nicht an den Typen, sondern an der Objektvariable test.