diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeCastFix.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeCastFix.java index 3129f8e10699..a7ef752d980a 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeCastFix.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeCastFix.java @@ -33,6 +33,7 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.codeStyle.JavaCodeStyleManager; +import com.intellij.psi.util.PsiTypesUtil; import com.intellij.psi.util.PsiUtil; import com.intellij.psi.util.TypeConversionUtil; import org.jetbrains.annotations.NotNull; @@ -65,7 +66,10 @@ public class AddTypeCastFix extends LocalQuickFixAndIntentionActionOnPsiElement @NotNull PsiFile file, @NotNull PsiElement startElement, @NotNull PsiElement endElement) { - return myType.isValid() && startElement.isValid() && startElement.getManager().isInProject(startElement); + return myType.isValid() && + PsiTypesUtil.isDenotableType(myType) && + startElement.isValid() && + startElement.getManager().isInProject(startElement); } @Override diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeNonDenotableCastType.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeNonDenotableCastType.java new file mode 100644 index 000000000000..51d49c06b479 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeNonDenotableCastType.java @@ -0,0 +1,7 @@ +// "Cast to '?'" "false" +class Scope { + T val; + void f(Scope s) { + s.val = ""; + } +} \ No newline at end of file