From 3a4d70a453e7e1697e60255088f98548885da3c3 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 25 Jul 2013 11:16:11 +0200 Subject: [PATCH] inference: do not infer from type cast (IDEA-111002) --- .../com/intellij/psi/util/PsiTypesUtil.java | 3 --- .../NoInferenceFromTypeCast.java | 23 +++++++++++++++++++ .../daemon/GenericsHighlightingTest.java | 1 + 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/NoInferenceFromTypeCast.java diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java index b8b36d29f977..1c6495917196 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java @@ -218,9 +218,6 @@ public class PsiTypesUtil { return PsiType.BOOLEAN.getBoxedType(parent); } } - else if (parent instanceof PsiTypeCastExpression) { - return ((PsiTypeCastExpression)parent).getType(); - } else if (parent instanceof PsiReturnStatement) { final PsiLambdaExpression lambdaExpression = PsiTreeUtil.getParentOfType(parent, PsiLambdaExpression.class); if (lambdaExpression != null) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/NoInferenceFromTypeCast.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/NoInferenceFromTypeCast.java new file mode 100644 index 000000000000..d655efd67573 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/NoInferenceFromTypeCast.java @@ -0,0 +1,23 @@ +import java.util.Collections; +import java.util.List; +import java.util.Set; + + +interface A {} + +interface B extends A {} + +class Foo { + public List getAs() { + return (List) getBs(); + } + + public List getBs() { + return null; + } + + void foo(Set s) {} + { + foo((Set)Collections.emptySet()); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java index 383d67be8170..76c01583eacc 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java @@ -302,6 +302,7 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { public void testIDEA57391() { doTest5(false); } public void testIDEA110869() { doTest5(false); } public void testIDEA110947() { doTest5(false); } + public void testNoInferenceFromTypeCast() { doTest5(false); } public void testJavaUtilCollections_NoVerify() throws Exception { PsiClass collectionsClass = getJavaFacade().findClass("java.util.Collections", GlobalSearchScope.moduleWithLibrariesScope(getModule()));