diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java index 87a13dfec4e2..42daf4dc4723 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java @@ -719,6 +719,17 @@ public class HighlightMethodUtil { PsiExpressionList list, PsiResolveHelper resolveHelper) { TextRange fixRange = getFixRange(methodCall); + final PsiExpression qualifierExpression = methodCall.getMethodExpression().getQualifierExpression(); + if (qualifierExpression instanceof PsiReferenceExpression) { + final PsiElement resolve = ((PsiReferenceExpression)qualifierExpression).resolve(); + if (resolve instanceof PsiClass && + ((PsiClass)resolve).getContainingClass() != null && + !((PsiClass)resolve).hasModifierProperty(PsiModifier.STATIC)) { + QuickFixAction.registerQuickFixAction(highlightInfo, + QUICK_FIX_FACTORY.createModifierListFix((PsiClass)resolve, PsiModifier.STATIC, true, false)); + } + } + QuickFixAction.registerQuickFixAction(highlightInfo, fixRange, QUICK_FIX_FACTORY.createCreateMethodFromUsageFix(methodCall)); QuickFixAction.registerQuickFixAction(highlightInfo, fixRange, QUICK_FIX_FACTORY.createCreateAbstractMethodFromUsageFix(methodCall)); QuickFixAction.registerQuickFixAction(highlightInfo, fixRange, QUICK_FIX_FACTORY.createCreateConstructorFromSuperFix(methodCall)); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/makeInnerStatic/afterInnerClassAsStaticMethodQualifier.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/makeInnerStatic/afterInnerClassAsStaticMethodQualifier.java new file mode 100644 index 000000000000..8ff2feeaef3b --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/makeInnerStatic/afterInnerClassAsStaticMethodQualifier.java @@ -0,0 +1,11 @@ +// "Make 'C2' static" "true" +class C { + + { + C2.staticMethod(); + } + + public static class C2 { + + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/makeInnerStatic/beforeInnerClassAsStaticMethodQualifier.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/makeInnerStatic/beforeInnerClassAsStaticMethodQualifier.java new file mode 100644 index 000000000000..c75fdd2345a8 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/makeInnerStatic/beforeInnerClassAsStaticMethodQualifier.java @@ -0,0 +1,11 @@ +// "Make 'C2' static" "true" +class C { + + { + C2.staticMethod(); + } + + public class C2 { + + } +} \ No newline at end of file