diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaPsiUtil.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaPsiUtil.java index 34fa7d5706bf..2045cfd181ca 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaPsiUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaPsiUtil.java @@ -563,7 +563,18 @@ public class DfaPsiUtil { if (psiClass == null) return classType; PsiType expressionType = expression.getType(); if (!(expressionType instanceof PsiClassType)) return classType; - return GenericsUtil.getExpectedGenericType(expression, psiClass, (PsiClassType)expressionType); + PsiClassType result = GenericsUtil.getExpectedGenericType(expression, psiClass, (PsiClassType)expressionType); + if (result.isRaw()) { + PsiClass aClass = result.resolve(); + if (aClass != null) { + int length = aClass.getTypeParameters().length; + PsiWildcardType wildcard = PsiWildcardType.createUnbounded(aClass.getManager()); + PsiType[] arguments = new PsiType[length]; + Arrays.fill(arguments, wildcard); + return JavaPsiFacade.getElementFactory(aClass.getProject()).createType(aClass, arguments); + } + } + return result; } /** diff --git a/java/java-tests/testData/codeInsight/completion/normal/AfterAssertTrueDfa_after.java b/java/java-tests/testData/codeInsight/completion/normal/AfterAssertTrueDfa_after.java index 19709329d168..62869f8f53c8 100644 --- a/java/java-tests/testData/codeInsight/completion/normal/AfterAssertTrueDfa_after.java +++ b/java/java-tests/testData/codeInsight/completion/normal/AfterAssertTrueDfa_after.java @@ -5,7 +5,7 @@ public class ExampleTest { Map data = doWork(); Object value = data.get("name"); assertTrue(value instanceof Map); - ((Map) value).getOrDefault() + ((Map) value).getOrDefault() } native Map doWork(); diff --git a/java/java-tests/testData/codeInsight/completion/normal/InstanceOfDisjunction2_after.java b/java/java-tests/testData/codeInsight/completion/normal/InstanceOfDisjunction2_after.java index e746948371f5..8fae9a511b57 100644 --- a/java/java-tests/testData/codeInsight/completion/normal/InstanceOfDisjunction2_after.java +++ b/java/java-tests/testData/codeInsight/completion/normal/InstanceOfDisjunction2_after.java @@ -4,7 +4,7 @@ import java.util.function.Function; class Test { long test(Object obj) { if (obj instanceof Integer || obj instanceof Long || obj instanceof String) { - ((Comparable) obj).compareTo() + ((Comparable) obj).compareTo() } return -1; }