diff --git a/java/java-psi-api/src/com/intellij/psi/PsiCapturedWildcardType.java b/java/java-psi-api/src/com/intellij/psi/PsiCapturedWildcardType.java index c94709ee164a..c3fe6c7775ac 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiCapturedWildcardType.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiCapturedWildcardType.java @@ -77,7 +77,7 @@ public class PsiCapturedWildcardType extends PsiType.Stub { return false; } - if (myContext instanceof PsiReferenceExpression && !Comparing.equal(myParameter, captured.myParameter)) { + if ((myContext instanceof PsiReferenceExpression || myContext instanceof PsiMethodCallExpression) && !Comparing.equal(myParameter, captured.myParameter)) { return false; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/DistinguishWildcardCapturesAlsoByMethodCalls.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/DistinguishWildcardCapturesAlsoByMethodCalls.java new file mode 100644 index 000000000000..26ebaf47df1f --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/DistinguishWildcardCapturesAlsoByMethodCalls.java @@ -0,0 +1,8 @@ +class B {} +abstract class A { + void baz(B a) {} + abstract B foo(); + void bar(A a) { + baz(a.foo()); + } +} \ 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 663f674e813b..1e7629aefca6 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java @@ -442,6 +442,10 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } + public void testDistinguishWildcardCapturesAlsoByMethodCalls() throws Exception { + doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); + } + public void testJavaUtilCollections_NoVerify() throws Exception { PsiClass collectionsClass = getJavaFacade().findClass("java.util.Collections", GlobalSearchScope.moduleWithLibrariesScope(getModule())); assertNotNull(collectionsClass);