From a9be351ccb92f88267889b6cdfa82bf3aa8e13c1 Mon Sep 17 00:00:00 2001 From: "Vitaliy.Bibaev" Date: Sat, 12 May 2018 16:19:01 +0300 Subject: [PATCH] IDEA-191797 Fix bug when evaluation doesnt work in lambda code block --- .../ExtractLightMethodObjectHandler.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractLightMethodObjectHandler.java b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractLightMethodObjectHandler.java index 746d27d9ee88..4b4f0f308451 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractLightMethodObjectHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractLightMethodObjectHandler.java @@ -127,8 +127,11 @@ public class ExtractLightMethodObjectHandler { // expand lambda to code block if needed PsiElement containingMethod = PsiTreeUtil.getParentOfType(originalAnchor, PsiMember.class, PsiLambdaExpression.class); if (containingMethod instanceof PsiLambdaExpression) { - PsiCodeBlock newBody = RefactoringUtil.expandExpressionLambdaToCodeBlock((PsiLambdaExpression)containingMethod); - originalAnchor = newBody.getStatements()[0]; + PsiLambdaExpression lambdaExpression = (PsiLambdaExpression)containingMethod; + if (lambdaExpression.getBody() instanceof PsiExpression) { + PsiCodeBlock newBody = RefactoringUtil.expandExpressionLambdaToCodeBlock(lambdaExpression); + originalAnchor = newBody.getStatements()[0]; + } } PsiElement anchor = RefactoringUtil.getParentStatement(originalAnchor, false);