Jabel – retrofitting Java Compiler by instrumenting it!
Java 8 is 5 years old, yet many projects still use it as a target.
However, this limits the Java language features to the ones available in 8. No "var", no switch expressions, no multi-line strings, no diamond operator with abstract classes...
But is it really necessary to target Java 13 to use multi-line strings? Or "var"? Aren't they a syntactic sugar, or they require some new bytecodes or APIs in Java 9 and higher?
This question was bothering me for too long, so I went to the javac sources and you will not believe what I found there! :D