diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddSingleMemberStaticImportAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddSingleMemberStaticImportAction.java index 190e54faf35f..c684a18ec46f 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddSingleMemberStaticImportAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddSingleMemberStaticImportAction.java @@ -21,6 +21,7 @@ package com.intellij.codeInsight.intention.impl; import com.intellij.codeInsight.CodeInsightBundle; import com.intellij.codeInsight.CodeInsightUtilBase; +import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; @@ -69,8 +70,17 @@ public class AddSingleMemberStaticImportAction extends PsiElementBaseIntentionAc qName = qName + "." +refExpr.getReferenceName(); if (file instanceof PsiJavaFile) { PsiImportList importList = ((PsiJavaFile)file).getImportList(); - if (importList != null && importList.findSingleImportStatement(refExpr.getReferenceName()) == null) { - return qName; + if (importList != null) { + for (PsiImportStaticStatement staticStatement : importList.getImportStaticStatements()) { + if (staticStatement.isOnDemand()) { + if (staticStatement.resolveTargetClass() == aClass) { + return null; + } + } + } + if (importList.findSingleImportStatement(refExpr.getReferenceName()) == null) { + return qName; + } } } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleImportDisabledWhenOnDemandExists.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleImportDisabledWhenOnDemandExists.java new file mode 100644 index 000000000000..103a4acc11ce --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addOnDemandStaticImport/beforeSingleImportDisabledWhenOnDemandExists.java @@ -0,0 +1,17 @@ +// "Add static import for 'test.Bar.f'" "false" +package test; + +import static test.Bar.*; + +class Bar { + public static final void f() {} +} +public class Foo extends FooSuper{ + { + Bar.f(); + } +} + +class FooSuper { + public static final void f(int i) {} +} \ No newline at end of file