We package a specific revision of javac and use it for Error Prone. Currently this is a ~year old version of javac 9, which means that: 1) You have to execute your compiler on JDK >=8. 2) You cannot target bytecode <=…
The standard annotation processing APIs don't provide enough information to do the analyses we want to do, so we do hook into javac internals. It does require a lot of effort to keep up with OpenJDK updates, but that's…
We package a specific revision of javac and use it for Error Prone. Currently this is a ~year old version of javac 9, which means that: 1) You have to execute your compiler on JDK >=8. 2) You cannot target bytecode <=…
The standard annotation processing APIs don't provide enough information to do the analyses we want to do, so we do hook into javac internals. It does require a lot of effort to keep up with OpenJDK updates, but that's…