From 27b6395f89b1a735b81e87a94ed40e349b1f8eb7 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 5 Apr 2012 19:06:37 +0200 Subject: [PATCH] fix inference for object type arg --- .../psi/impl/source/resolve/PsiResolveHelperImpl.java | 2 +- .../genericsHighlighting/IDEA77991.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java index 7f7d201207dd..573598ff0e07 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java @@ -466,7 +466,7 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { if (arg == null || arg.getDeepComponentType() instanceof PsiPrimitiveType || arg instanceof PsiIntersectionType || - (psiClass != null && !CommonClassNames.JAVA_LANG_OBJECT.equals(psiClass.getQualifiedName()))) { + (psiClass != null && (isContraVariantPosition || !CommonClassNames.JAVA_LANG_OBJECT.equals(psiClass.getQualifiedName())))) { PsiType bound = intersectAllExtends(typeParam, arg); return new Pair(bound, ConstraintType.SUPERTYPE); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA77991.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA77991.java index 507e3cad8262..3cd493b38cfd 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA77991.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA77991.java @@ -12,4 +12,15 @@ class Test { static E foo(Class value) { return null; } +} + +class Comp { + public static boolean equal(T arg1, T arg2) { + return false; + } + + void foo(String s, Object o) { + if (equal(s, o)) { + } + } } \ No newline at end of file