diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java index 9e42f4b8c330..7471b915928c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java @@ -261,8 +261,7 @@ public class InferenceSession { return prepareSubstitution(); } - if (parameters != null && args != null && - !MethodCandidateInfo.ourOverloadGuard.currentStack().contains(PsiUtil.skipParenthesizedExprUp(parent.getParent()))) { + if (parameters != null && args != null) { final Set additionalConstraints = new LinkedHashSet(); if (parameters.length > 0) { collectAdditionalConstraints(parameters, args, properties.getMethod(), PsiSubstitutor.EMPTY, additionalConstraints, properties.isVarargs()); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/MethodReferenceWithTypeArgs.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/MethodReferenceWithTypeArgs.java new file mode 100644 index 000000000000..36b6740c13bd --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/MethodReferenceWithTypeArgs.java @@ -0,0 +1,22 @@ + +import java.util.TreeSet; +import java.util.function.Supplier; +import java.util.stream.Stream; + +class Test { + + void foo() { + log(get(TreeSet::new)); + } + + private void log(String params[]) { + System.out.println(params); + } + private void log(Object params) { + System.out.println(params); + } + + C get(Supplier s) { + return s.get(); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/OverloadResolutionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/OverloadResolutionTest.java index 0139a107b413..02f5f8770e1c 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/OverloadResolutionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/OverloadResolutionTest.java @@ -114,6 +114,10 @@ public class OverloadResolutionTest extends LightDaemonAnalyzerTestCase { doTest(); } + public void testMethodReferenceWithTypeArgs() throws Exception { + doTest(); + } + private void doTest() { doTest(true); }