Open maxteufel opened 1 week ago
more minimal example:
$ cat ex_verifyerror.fz
ex_verifyerror =>
addr array i8 := [0, 0, 0, 0]
client Java.java.net.InetAddress := (Java.java.net.InetAddress_static.getByAddress addr).val
s := Java.dev.flang.Session_static.get "" "" client
c := Java.dev.flang.Content_static.getContents s "/news"
s.setCurrent c.__simplePath
$ FUZION_JAVA_ADDITIONAL_CLASSPATH="classes" fz -unsafeIntrinsics=on -modules=java.base,webserver ex_verifyerror.fz
0: new session 1 Y68tliH9Y2wC_COq27_uUQ for /0.0.0.0 user --none--
error 1: java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
fzC_fuzion__java__3get_field_Java_java_lang___jString.fzRoutine(LfzI_fuzion__java__1Java_Object;LfzI_String;LfzI_String;)LfzC_Java__java__lang__1_u_jString; @42: getfield
Reason:
Type 'fzI_fuzion__java__1Java_Object' (current frame, stack[1]) is not assignable to 'fzC_fuzion__java__1Java_Object'
Current Frame:
bci: @42
flags: { }
locals: { 'fzI_fuzion__java__1Java_Object', 'fzI_String', 'fzI_String', 'fzC_fuzion__java__3get_field_Java_java_lang___jString' }
stack: { 'fzC_fuzion__java__3get_field_Java_java_lang___jString', 'fzI_fuzion__java__1Java_Object' }
Bytecode:
0000000: bb00 0259 b700 164e 2d2a b500 182d 2bb5
0000010: 001a 2d2c b500 1c2d 2db4 001a b800 22b5
0000020: 0024 b800 282d 2db4 0018 b400 2e2d b400
0000030: 24b4 002e c000 30b8 0036 b500 382d b400
0000040: 38b0
Stackmap Table:
full_frame(@0,{Object[#59],Object[#61],Object[#61]},{})
at fzC_Java__dev__flang__1Content_S_Identifier___u_simplePath.fzRoutine($MODULE/Java/dev/flang/Content_S_Identifier.fz:46)
at fzC_ex_verifyerror.fzRoutine(ex_verifyerror.fz:6)
at fzC_universe.fz_run(--builtin--)
at dev.flang.be.jvm.runtime.FuzionThread.lambda$new$1(FuzionThread.java:104)
at dev.flang.util.Errors.runAndExit(Errors.java:895)
at dev.flang.be.jvm.runtime.FuzionThread.lambda$new$2(FuzionThread.java:116)
at java.base/java.lang.Thread.run(Thread.java:1583)
*** fatal errors encountered, stopping.
one error.
When making a small change in the fuzion-based flang.dev webserver:
the relevant parts of the change: