Reason was that it tried to invokeInterface whereas a bridge redirects to a local (virtual) method.
The local method was flagged incorrectly as the same type as the bridger which would be interface, hence the error
Functional Wrappers, Bridge Methods, Type descriptor fix
Functional interface wrappers should work now
Implementing a method with a signature differing from the actual one (e.g. when dealing with generics) now creates a proper bridge method
The Java Bytecde compiler used an incorrect method in checkCast
We now no longer use hardcoded 'accept's as method names but whatever the context tells us to.
Directly using the lambda where the functional interface is requested works.
The lambda class will then directly implement the functionalInterface and not use a wrapper class
Properly implement expressions without return value. Also fixed some bugs in expressions that do return a values. Also added a position to the JavaWriter for easier debugging.
- Fix crash when performing access checks between script and class
- Fix default constructor not working properly
- Fix integration classes without exposed constructor being instantiable if they have a default (non-exposed) constructor
- Fix extern methods failing validation
Revamped the compilation system; it now works fully modular. Also, a new ScriptingEngine class has been created to make it very easy to create a scripting environment.