trivial functional expression fix for empty lambda code block

This commit is contained in:
Anna.Kozlova
2017-08-08 13:28:41 +02:00
parent c0a82e5e1a
commit f67eaef468
3 changed files with 25 additions and 8 deletions
@@ -0,0 +1,7 @@
// "Replace method call on lambda with lambda body" "true"
public class Main {
void test() {
}
}
@@ -0,0 +1,8 @@
// "Replace method call on lambda with lambda body" "true"
public class Main {
void test() {
((Runnable) () -> {}).ru<caret>n();
}
}
@@ -231,14 +231,16 @@ public class TrivialFunctionalExpressionUsageInspection extends BaseJavaBatchLoc
body = element.getBody();
final PsiElement parent = callExpression.getParent();
final PsiStatement[] statements = ((PsiCodeBlock)body).getStatements();
if (statements.length == 0) return;
final PsiStatement anchor = PsiTreeUtil.getParentOfType(parent, PsiStatement.class, false);
PsiReturnStatement statement = ObjectUtils.tryCast(statements[statements.length - 1], PsiReturnStatement.class);
if (anchor != null) {
final PsiElement gParent = anchor.getParent();
for (PsiElement child : body.getChildren()) {
if (child != statement && !(child instanceof PsiJavaToken)) {
gParent.addBefore(ct.markUnchanged(child), anchor);
PsiReturnStatement statement = null;
if (statements.length > 0) {
final PsiStatement anchor = PsiTreeUtil.getParentOfType(parent, PsiStatement.class, false);
statement = ObjectUtils.tryCast(statements[statements.length - 1], PsiReturnStatement.class);
if (anchor != null) {
final PsiElement gParent = anchor.getParent();
for (PsiElement child : body.getChildren()) {
if (child != statement && !(child instanceof PsiJavaToken)) {
gParent.addBefore(ct.markUnchanged(child), anchor);
}
}
}
}