diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java
index 572808a8fff5..0617af3924f7 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java
@@ -93,6 +93,7 @@ import com.intellij.psi.SyntheticElement;
import com.intellij.psi.TypeAnnotationProvider;
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
import com.intellij.psi.codeStyle.VariableKind;
+import com.intellij.psi.impl.PsiImplUtil;
import com.intellij.psi.impl.search.JavaNullMethodArgumentUtil;
import com.intellij.psi.impl.search.JavaOverridingMethodsSearcher;
import com.intellij.psi.search.GlobalSearchScope;
@@ -385,9 +386,13 @@ public class NullableStuffInspectionBase extends AbstractBaseJavaLocalInspection
LocalQuickFix.from(action));
}
else {
- ModCommandAction action = new MoveAnnotationOnStaticMemberQualifyingTypeFix(annotation);
- reportIncorrectLocation(holder, annotation, listOwner, "inspection.nullable.problems.outer.type",
- LocalQuickFix.from(action));
+ // If outer is qualifier of static member then don't report problem as it is already reported
+ // as ANNOTATION_NOT_ALLOWED_STATIC which contains exactly the same fix "Move annotation".
+ if (!PsiImplUtil.isTypeQualifierOfStaticMember(outerCtx)) {
+ ModCommandAction action = new MoveAnnotationOnStaticMemberQualifyingTypeFix(annotation);
+ reportIncorrectLocation(holder, annotation, listOwner, "inspection.nullable.problems.outer.type",
+ LocalQuickFix.from(action));
+ }
}
}
if (parent instanceof PsiReferenceList) {
diff --git a/java/java-tests/testData/inspection/nullableProblems/IncorrectPlacement.java b/java/java-tests/testData/inspection/nullableProblems/IncorrectPlacement.java
index 9f603cc2be72..db256841f391 100644
--- a/java/java-tests/testData/inspection/nullableProblems/IncorrectPlacement.java
+++ b/java/java-tests/testData/inspection/nullableProblems/IncorrectPlacement.java
@@ -20,6 +20,13 @@ public class IncorrectPlacement extends @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 {}
}
\ No newline at end of file