diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodQualifierFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodQualifierFix.java index 317dae414994..9408d4e637d8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodQualifierFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodQualifierFix.java @@ -74,7 +74,7 @@ public class AddMethodQualifierFix implements IntentionAction { @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) { final PsiMethodCallExpression element = myMethodCall.getElement(); - if (element == null || !element.isValid()) { + if (element == null || !element.isValid() || element.getMethodExpression().getQualifierExpression() != null) { return false; } if (myCandidates == null) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/NotAvailableIfQualifierExists.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/NotAvailableIfQualifierExists.java new file mode 100644 index 000000000000..48097c69e2bf --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addMethodCallQualifier/NotAvailableIfQualifierExists.java @@ -0,0 +1,15 @@ +class X { + public class ObjectValue { + public ObjectValue get(String name) { return null; } + } + + public class JsonObjectValue extends ObjectValue { + public int sizeInBytes() { return 0; } + } + + { + JsonObjectValue obj = null; + obj.get("href").sizeInBytes(); + } + +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/AddMethodQualifierTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/AddMethodQualifierTest.java index ae910657e8bc..3d7e61c01451 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/AddMethodQualifierTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/AddMethodQualifierTest.java @@ -63,6 +63,11 @@ public class AddMethodQualifierTest extends JavaCodeInsightFixtureTestCase { doTestFix(); } + public void testNotAvailableIfQualifierExists() { + myFixture.configureByFile(getTestName(false) + ".java"); + assertNull(getQuickFix()); + } + private void doTestFix() { myFixture.configureByFile(getTestName(false) + "Before.java"); final AddMethodQualifierFix quickFix = getQuickFix();