diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ArgumentFixerActionFactory.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ArgumentFixerActionFactory.java index 6ef2bb6ba8f0..f0693728053f 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ArgumentFixerActionFactory.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ArgumentFixerActionFactory.java @@ -93,7 +93,7 @@ public abstract class ArgumentFixerActionFactory { if (parameterType instanceof PsiWildcardType) continue; if (!GenericsUtil.isFromExternalTypeLanguage(parameterType)) continue; if (suggestedCasts.contains(parameterType.getCanonicalText())) continue; - if (exprType instanceof PsiPrimitiveType && parameterType instanceof PsiClassType) { + if (TypeConversionUtil.isPrimitiveAndNotNull(exprType) && parameterType instanceof PsiClassType) { PsiType unboxedParameterType = PsiPrimitiveType.getUnboxedType(parameterType); if (unboxedParameterType != null) { parameterType = unboxedParameterType; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterNullToPrimitiveType.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterNullToPrimitiveType.java new file mode 100644 index 000000000000..55a4c23d41ec --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/afterNullToPrimitiveType.java @@ -0,0 +1,8 @@ +// "Cast parameter to 'java.lang.Integer'" "true" +class a { + void m(Integer i){} + void m(String s) {} + void f() { + m((Integer) null); + } +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeNullToPrimitiveType.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeNullToPrimitiveType.java new file mode 100644 index 000000000000..cdd6a01aded6 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addTypeCast/beforeNullToPrimitiveType.java @@ -0,0 +1,8 @@ +// "Cast parameter to 'java.lang.Integer'" "true" +class a { + void m(Integer i){} + void m(String s) {} + void f() { + m(null); + } +}