trivial functional expression: preserve comments

This commit is contained in:
Anna Kozlova
2016-01-22 20:05:16 +03:00
parent f29e79a4d9
commit 5206f93264
@@ -192,6 +192,7 @@ public class TrivialFunctionalExpressionUsageInspection extends BaseJavaBatchLoc
final PsiElement parent = callExpression.getParent();
if (parent instanceof PsiStatement) {
final PsiElement gParent = parent.getParent();
restoreComments(gParent, parent, body);
for (PsiStatement statement : ((PsiCodeBlock)body).getStatements()) {
PsiElement toInsert;
if (statement instanceof PsiReturnStatement) {
@@ -213,6 +214,7 @@ public class TrivialFunctionalExpressionUsageInspection extends BaseJavaBatchLoc
final PsiStatement anchor = PsiTreeUtil.getParentOfType(parent, PsiStatement.class);
if (anchor != null) {
final PsiElement gParent = anchor.getParent();
restoreComments(gParent, anchor, body);
for (int i = 0; i < statements.length - 1; i++) {
gParent.addBefore(statements[i], anchor);
}
@@ -226,6 +228,12 @@ public class TrivialFunctionalExpressionUsageInspection extends BaseJavaBatchLoc
}
}
private static void restoreComments(PsiElement gParent, PsiElement parent, PsiElement body) {
for (PsiElement comment : PsiTreeUtil.findChildrenOfType(body, PsiComment.class)) {
gParent.addBefore(comment, parent);
}
}
private static void inlineCallArguments(PsiMethodCallExpression callExpression, PsiLambdaExpression element) {
final PsiExpression[] args = callExpression.getArgumentList().getExpressions();
final PsiParameter[] parameters = element.getParameterList().getParameters();