import typeUse.*; public class IncorrectPlacement extends @Nullable Object implements @Nullable Cloneable { interface X { void test() throws @Nullable Exception; void test2() throws @NotNull Exception; } @Nullable IncorrectPlacement() {} void test(@Nullable IncorrectPlacement this) { @Nullable IncorrectPlacement.Inner a1; IncorrectPlacement.@Nullable Inner a2; } void fqn() { @Nullable java.lang.String[] strs; } @NotNull int[] data; void testStaticNested() { // No "Outer type is inherently non-null" warning. Reported error provides the same "Move annotation" fix. @Nullable IncorrectPlacement.StaticNested a1; IncorrectPlacement.@Nullable StaticNested a2; } class Inner {} static class StaticNested {} }