| For `@Nullable` type annotations (such as |
| `org.checkerframework.checker.nullness.qual.Nullable`), `@Nullable byte[]` means |
| a 'non-null array of nullable bytes', and `byte @Nullable []` means a 'nullable |
| array of non-null bytes'. Since primitive types cannot be null, the former is |
| incorrect. |
| |
| Some other nullness annotations (such as `javax.annotation.Nullable`) are |
| _declaration_ annotations rather than _type_ annotations. Their meaning is |
| different: For such annotations, `@Nullable byte[]` refers to 'a nullable array |
| of non-null bytes,' and `byte @Nullable []` is rejected by javac. Thus, this |
| check never reports errors for usages of declaration annotations. |
| |
| See also: https://checkerframework.org/manual/#faq-array-syntax-meaning |