Skip to content

Commit

Permalink
[ci skip] Add section on nullability annotations (#11461)
Browse files Browse the repository at this point in the history
  • Loading branch information
kennytv authored Oct 2, 2024
1 parent 709f0f2 commit fb76840
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit fb76840

Please sign in to comment.