diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/afterIfStmtInBody.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/afterIfStmtInBody.java new file mode 100644 index 000000000000..b5ce4afae14a --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/afterIfStmtInBody.java @@ -0,0 +1,16 @@ +// "Replace method call on lambda with lambda body" "true" + +import java.util.function.Supplier; + +abstract class TrivialUsageInline { + + public T evaluateUnderLock(Supplier supplier) { + if (true) { + return supplier.get(); + } + else { + return null; + } + + } +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/beforeIfStmtInBody.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/beforeIfStmtInBody.java new file mode 100644 index 000000000000..59ea72a16b63 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/beforeIfStmtInBody.java @@ -0,0 +1,18 @@ +// "Replace method call on lambda with lambda body" "true" + +import java.util.function.Supplier; + +abstract class TrivialUsageInline { + + public T evaluateUnderLock(Supplier supplier) { + return ((Supplier) () -> { + if (true) { + return supplier.get(); + } + else { + return null; + } + + }).get(); + } +} diff --git a/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java b/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java index 9922ecaf7ab4..6208121cabd5 100644 --- a/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java +++ b/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java @@ -242,7 +242,12 @@ public class TrivialFunctionalExpressionUsageInspection extends AbstractBaseJava ct.replaceAndRestoreComments(callExpression, returnValue); } else { - ct.deleteAndRestoreComments(callExpression); + if (parent instanceof PsiExpressionStatement) { + ct.deleteAndRestoreComments(callExpression); + } + else { + ct.deleteAndRestoreComments(parent); + } } }