diff --git a/java/java-impl/src/com/intellij/codeInspection/sameParameterValue/SameParameterValueInspection.java b/java/java-impl/src/com/intellij/codeInspection/sameParameterValue/SameParameterValueInspection.java index 9219e89f8e14..ccffc44f1f59 100644 --- a/java/java-impl/src/com/intellij/codeInspection/sameParameterValue/SameParameterValueInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/sameParameterValue/SameParameterValueInspection.java @@ -446,6 +446,9 @@ public class SameParameterValueInspection extends GlobalJavaBatchInspectionTool if (!(uElement instanceof UReferenceExpression)) { return false; } + if (uElement instanceof UCallableReferenceExpression) { + return false; + } UElement parent = uElement.getUastParent(); if (!(parent instanceof UCallExpression)) { return false; diff --git a/java/java-tests/testData/inspection/sameParameterValue/methodReferenceInCallArguments/expected.xml b/java/java-tests/testData/inspection/sameParameterValue/methodReferenceInCallArguments/expected.xml new file mode 100644 index 000000000000..fe8911379d1d --- /dev/null +++ b/java/java-tests/testData/inspection/sameParameterValue/methodReferenceInCallArguments/expected.xml @@ -0,0 +1,10 @@ + + + + Test.java + 8 + Actual value of parameter 'string' is always 'hello' + + + + diff --git a/java/java-tests/testData/inspection/sameParameterValue/methodReferenceInCallArguments/src/Test.java b/java/java-tests/testData/inspection/sameParameterValue/methodReferenceInCallArguments/src/Test.java new file mode 100644 index 000000000000..ccdac0edccc9 --- /dev/null +++ b/java/java-tests/testData/inspection/sameParameterValue/methodReferenceInCallArguments/src/Test.java @@ -0,0 +1,18 @@ +import java.util.function.Consumer; + +class Test { + private void main() { + bar("hello", this::buzz); + } + + private void bar(String string, Consumer o) { + o.accept(1); + use(string); + } + + private void buzz(int integer) { + use(integer); + } + + private void use(Object a) {} +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/SameParameterValueLocalTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/SameParameterValueLocalTest.java index 102b7c00ae3e..9290e9294c2a 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/SameParameterValueLocalTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/SameParameterValueLocalTest.java @@ -76,6 +76,10 @@ public class SameParameterValueLocalTest extends InspectionTestCase { doTest(getGlobalTestDir(), myTool); } + public void testMethodReferenceInCallArguments() { + doTest(getGlobalTestDir(), myTool); + } + public void testUsageCount() { int previous = myGlobalTool.minimalUsageCount; try {