treeWalkUp: stop at member level to avoid skipping anonymous classes

This commit is contained in:
Anna.Kozlova
2016-04-19 20:02:32 +02:00
parent 6c39a86407
commit 2dead05e6b
3 changed files with 26 additions and 1 deletions
@@ -741,7 +741,7 @@ public class LambdaUtil {
break;
}
final PsiCall psiCall = PsiTreeUtil.getParentOfType(parent, PsiCall.class);
final PsiCall psiCall = PsiTreeUtil.getParentOfType(parent, PsiCall.class, false, PsiMember.class);
if (psiCall == null) {
break;
}
@@ -0,0 +1,24 @@
import java.util.function.Function;
class It {
Function<It, TextRange> f = new Function<It, TextRange>() {
@Override
public TextRange apply(final It it) {
long offset = 9;
return offset == 0 ? it.range() : it.range().shiftRight((int) offset);
}
};
class TextRange {
public TextRange shiftRight(final int offset) {
return null;
}
}
TextRange range() {
return new TextRange();
}
}
@@ -71,6 +71,7 @@ public class LambdaRedundantCastTest extends LightDaemonAnalyzerTestCase {
public void testEnumConstantWithFunctionalExpressionArg() throws Exception { doTest(); }
public void testSecondLevelOverload() throws Exception { doTest(); }
public void testStopAtMemberLevelDuringWalkUp() throws Exception { doTest(); }
public void testIDEA154861() { doTest();}