diff options
author | Nassim Jahnke <[email protected]> | 2024-10-02 14:32:20 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2024-10-02 14:32:20 +0200 |
commit | fb768404aa8bdd35b95c88132b95f5cb529cc098 (patch) | |
tree | 2cfaa9f8082544be738b9100cce448f16bc4e943 | |
parent | 709f0f2919a89d98a3633656324452e815cf66e3 (diff) | |
download | Paper-fb768404aa8bdd35b95c88132b95f5cb529cc098.tar.gz Paper-fb768404aa8bdd35b95c88132b95f5cb529cc098.zip |
[ci skip] Add section on nullability annotations (#11461)
-rw-r--r-- | CONTRIBUTING.md | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fe998c4ea5..be94ba56a9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -249,6 +249,17 @@ instead of adding a new import to the top of the file. If you are using a type a can add an import with a comment. However, if its only used a couple of times, the FQN is preferred to prevent future patch conflicts in the import section of the file. +### Nullability annotations + +We are in the process of switching nullability annotation libraries, so you might need to use one or the other: + +**For classes we add**: Fields, method parameters and return types that are nullable should be marked via the +`@Nullable` annotation from `org.jspecify.annotations`. Whenever you create a new class, add `@NullMarked`, meaning types +are assumed to be non-null by default. For less obvious placing such as on generics or arrays, see the [JSpecify docs](https://jspecify.dev/docs/user-guide/). + +**For classes added by upstream**: Keep using both `@Nullable` and `@NotNull` from `org.jetbrains.annotations`. These +will be replaced later. + ```java import org.bukkit.event.Event; // don't add import here, use FQN like below |