mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 20:39:40 +07:00
LocalCanBeFinal: fix false negative in lambda body
#IDEA-227649 GitOrigin-RevId: 33a5c47c1cad5c2a6057ad97fad74d74962252ae
This commit is contained in:
committed by
intellij-monorepo-bot
parent
096910239f
commit
9c6fcc15f3
@@ -221,6 +221,9 @@ public class LocalCanBeFinal extends AbstractBaseJavaLocalInspectionTool impleme
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public void visitReferenceExpression(PsiReferenceExpression expression) {
|
@Override public void visitReferenceExpression(PsiReferenceExpression expression) {
|
||||||
|
if (expression.getParent() instanceof PsiMethodCallExpression) {
|
||||||
|
super.visitReferenceExpression(expression);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
class Test {
|
||||||
|
void test() {
|
||||||
|
List<Integer> <warning descr="Variable 'list' can have 'final' modifier">list</warning> = Stream.of(1, 2, 3)
|
||||||
|
.map(i -> {
|
||||||
|
int <warning descr="Variable 'res' can have 'final' modifier">res</warning> = i + 1;
|
||||||
|
System.out.println(res);
|
||||||
|
return res;
|
||||||
|
})
|
||||||
|
.map(i -> {
|
||||||
|
int <warning descr="Variable 'res' can have 'final' modifier">res</warning> = i + 2;
|
||||||
|
System.out.println(res);
|
||||||
|
return res;
|
||||||
|
})
|
||||||
|
.map(i -> {
|
||||||
|
int <warning descr="Variable 'res' can have 'final' modifier">res</warning> = i + 3;
|
||||||
|
System.out.println(res);
|
||||||
|
return res;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -124,6 +124,11 @@ public class LocalCanBeFinalTest extends LightJavaCodeInsightFixtureTestCase {
|
|||||||
doTest();
|
doTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testLambdaBody2() {
|
||||||
|
myTool.REPORT_VARIABLES = true;
|
||||||
|
doTest();
|
||||||
|
}
|
||||||
|
|
||||||
public void testForeachNotReported() {
|
public void testForeachNotReported() {
|
||||||
myTool.REPORT_PARAMETERS = true;
|
myTool.REPORT_PARAMETERS = true;
|
||||||
myTool.REPORT_VARIABLES = false;
|
myTool.REPORT_VARIABLES = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user