1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-12-08 23:18:05 +00:00

Switch to JSpecify annotations

Now, hear me out, what if instead of having three @Nullable annotations,
we had *four*?

I've been wanting to switch away from javax.annoations for a while. The
library has been deprecated for ever and, unlike other @Nullable
annotations, the annotation is attached to the parameter/function
itself, rather than the type.

We use JSpecify rather than one of the alternatives (JetBrains,
CheckerFramework) mostly because it's what NullAway recommends. We keep
CheckerFramework around for @DefaultQualifier, and JB's for @Contract.

There are some ugly changes here — for instance, `@Nullable byte[]` is
replace by `byte @Nullable`, and `@Nullable ILuaMachine.Factory` is
`ILuaMachine.@Nullable Factory`. Ughr, I understand why, but it does not
spark joy :).
This commit is contained in:
Jonathan Coates
2025-02-16 18:09:15 +00:00
parent 12a44fed6f
commit 0998acaa82
326 changed files with 542 additions and 540 deletions

View File

@@ -58,6 +58,8 @@ val checkChangelog by tasks.registering(cc.tweaked.gradle.CheckChangelog::class)
tasks.check { dependsOn(checkChangelog) }
cct.linters(minecraft = false, loader = null)
// We configure the shadow jar to ship netty-codec and all its dependencies, relocating them under the
// dan200.computercraft.core package.
// This is used as part of the Forge build, so that our version of netty-codec is loaded under the GAME layer, and so