Compiled wildcard is not correctly handled by ASM
I have a fragment of code:
.findFirst().orElseThrow(() -> new Error("Code not found"))
Which after compiling with use of jdk8 with tycho-maven-plugin 0.22 generates below code:
Signature ()+Ljava/lang/Error; ~ java/lang/Error € Code not found
When I pass the compiled code through ASM, SignatureReader class throws an IllegalArgumentException when it encounters ‘+’ character. I've tested this on several asm versions and I see that versions below 6.1 pass this while newer versions throw this exception.
(Compiling code without tycho or with newer tycho version doesn't generate this Signature ()+Ljava/lang/Error;
part and generated code passes through asm, but for internal reason I am unable to upgrade tycho to a newer version at the moment)
Whereas javap command read generated .class file correctly without informing about any error. On the contrary jd-gui is not able to decompile this .class file.
I assume that if javap doesn't report any error, it's a valid java bytecode.
File compiled with tycho 0.22: TestClass.class