From 5206f932647e2af727fa882b8b49932ec9d4c4e4 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 22 Jan 2016 14:55:53 +0300 Subject: [PATCH] trivial functional expression: preserve comments --- .../TrivialFunctionalExpressionUsageInspection.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java b/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java index a50a1e686a61..c75e1a464b8a 100644 --- a/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java +++ b/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java @@ -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();