do not drill inside lambda body during return statement search (IDEA-130123)

This commit is contained in:
Anna Kozlova
2014-09-29 14:08:36 +02:00
parent d34eaa9ad2
commit aedcba169d
3 changed files with 19 additions and 1 deletions
@@ -1123,7 +1123,7 @@ public final class PsiUtil extends PsiUtilCore {
if (element instanceof PsiReturnStatement) {
vector.add((PsiReturnStatement)element);
}
else if (!(element instanceof PsiClass)) {
else if (!(element instanceof PsiClass) && !(element instanceof PsiLambdaExpression)) {
PsiElement[] children = element.getChildren();
for (PsiElement child : children) {
addReturnStatements(vector, child);
@@ -0,0 +1,14 @@
import java.util.LinkedList;
import java.util.function.Function;
import java.util.function.Predicate;
class Main {
{
new LinkedList<Object>().forEach((value)->{
new LinkedList<Object>().stream().filter((c)->{
return c == null;
});
});
}
}
@@ -47,6 +47,10 @@ public class OverloadResolutionTest extends LightDaemonAnalyzerTestCase {
doTest();
}
public void testReturnStatementsInsideNestedLambdasDuringVoidValueCompatibilityChecks() throws Exception {
doTest();
}
private void doTest() {
doTest(true);
}