diff --git a/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java b/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java index 19b03ed607f8..6fd650c5dc84 100644 --- a/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java +++ b/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java @@ -341,6 +341,9 @@ public class MethodCandidateInfo extends CandidateInfo{ } else { PsiTypeParameter[] typeParams = method.getTypeParameters(); + if (isRawSubstitution()) { + return JavaPsiFacade.getElementFactory(method.getProject()).createRawSubstitutor(mySubstitutor, typeParams); + } for (int i = 0; i < myTypeArguments.length && i < typeParams.length; i++) { incompleteSubstitutor = incompleteSubstitutor.put(typeParams[i], myTypeArguments[i]); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/CallOnRawWithExplicitTypeArguments.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/CallOnRawWithExplicitTypeArguments.java new file mode 100644 index 000000000000..139f27ad2772 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/CallOnRawWithExplicitTypeArguments.java @@ -0,0 +1,9 @@ +class RawTest { + public T foo() { + return null; + } + + void bar(RawTest x){ + String a = x.foo(); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/GenericsHighlighting8Test.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/GenericsHighlighting8Test.java index 98b4dcfe7583..94ad30b279e3 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/GenericsHighlighting8Test.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/GenericsHighlighting8Test.java @@ -1041,5 +1041,6 @@ public class GenericsHighlighting8Test extends LightDaemonAnalyzerTestCase { public void testBridgeMethodOverriding() { doTest(); } public void testNestedWildcardsWithImplicitBounds() { doTest(); } + public void testCallOnRawWithExplicitTypeArguments() { doTest(); } public void testNoCaptureConversionDuringDetectingSupertypesDeepInHierarchy() { doTest(); } }