-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Write advice on using a javac that can (a) read type-use annotations from class files and (b) understand MODULE
#537
Comments
(previously: #302 (comment), which created https://github.com/jspecify/jspecify/wiki/version-compatibility, which also mentions runtime effects) |
MODULE
MODULE
I need to check into where we stand with using a javac 11+ but with And as noted above, Gradle steers users toward using old versions of javac, so no matter what, I'd expect some users to be on javac 8.... |
Setting the |
I have an update on the Note that the next versions of Error Prone [edit: 2.29.0, now released] and Truth [edit: 1.4.4, now released] will both help address this. |
Some discussion of uber/NullAway#1022 is suggesting that the fix for JDK-8332230 may also end up being important to nullness checkers. |
Very rough notes for later cleanup:
Things you want (each of which should come with a justification for why you want it):
@Target(MODULE, ...)
, which we use for@NullMarked
. That means JDK 9 or higher, and probably everyone in practice wants JDK 11+, given that 9 and 10 don't seem to have been widely adopted.-Werror
? It's been a while since I looked.How to get them:
--release
.Unsafe
, maybe ideally perform multiple builds and use multi-release jars or something, or maybe hack around it? Maybe don't bother with this and instead just try the options below?--system
. Build-system integration for this seems to not be great.The text was updated successfully, but these errors were encountered: