Correct maven-compiler-plugin JDK version for IDEA import Compiler bytecode version.
Remove JvstTestRoot's constructor, otherwise IDEA cannot show Run icon aside testMethod.
Another way is adding suite() static method to those classes.
Now we can clone and open project with IDEA 2023.2. Debug single test case with IDEA is very useful.
Fix insertAuxInitializer may cause inconsistent stack height problem
Usually, constructor only load super class's constructor's init params into stack.
After this() or super() called, stack will be empty. If so, we insertAuxInitializer
right after this() or super() can reuse max stack size if it enough.
But, there is some weird class out there, their constructors load all in-constructor
init field value into stack before this() or super() call. In this case,
after this() or super() call, stack is not empty, even maybe full.
In summary, insertAuxInitializer should increase MaxStack anyway.
Fix MemberResolver.lookupMethod bug when super class has more precise match
When onlyExact=false and super class have a more precise match,
it should not return with current class's maybe result.
New added testSuperCall reveals the problem.
Fix issue in no-standard [new] instruction replace
A standard *new* construct bytecode will generate like:
```
new okhttp3/OkHttpClient
dup
invokespecial okhttp3/OkHttpClient <init> ()V
astore 1
```
but a few part of compiler will generate no-standard bytecode like:
```
new okhttp3/OkHttpClient
dup
astore 1
invokespecial okhttp3/OkHttpClient <init> ()V
```
which will cause javassist build stack error.
This commit will fix it
javassist fails to find a class when concurrently running process
compresses the class (converts classfile to raw bytes)
the idea of the fix is to make sure to only update rawClassfile and classfile
under lock in getClassFile3, all other places that modify classfile are
already synchronized
when reading the object state, we need to read under lock both classfile and
rawClassFile otherwise we might get an inconsistent state