From f8c57bfa5adeef231df900d1a8626d24eb09c635 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Thu, 25 Oct 2018 15:13:44 +0200 Subject: [PATCH] unwrap lambda: ensure declaration is covered in preview (IDEA-201206) --- .../codeInsight/unwrap/JavaLambdaUnwrapper.java | 6 ++++++ .../java/codeInsight/unwrap/UnwrapLambdaTest.java | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/java/java-impl/src/com/intellij/codeInsight/unwrap/JavaLambdaUnwrapper.java b/java/java-impl/src/com/intellij/codeInsight/unwrap/JavaLambdaUnwrapper.java index 4823756512f2..4f185b3f3733 100644 --- a/java/java-impl/src/com/intellij/codeInsight/unwrap/JavaLambdaUnwrapper.java +++ b/java/java-impl/src/com/intellij/codeInsight/unwrap/JavaLambdaUnwrapper.java @@ -32,6 +32,12 @@ public class JavaLambdaUnwrapper extends JavaUnwrapper { return e instanceof PsiLambdaExpression; } + @Override + public PsiElement collectAffectedElements(@NotNull PsiElement e, @NotNull List toExtract) { + super.collectAffectedElements(e, toExtract); + return JavaAnonymousUnwrapper.findElementToExtractFrom(e); + } + @Override protected void doUnwrap(PsiElement element, Context context) throws IncorrectOperationException { PsiElement from = JavaAnonymousUnwrapper.findElementToExtractFrom(element); diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/unwrap/UnwrapLambdaTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/unwrap/UnwrapLambdaTest.java index 13ac3f593fd5..1629860f093e 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/unwrap/UnwrapLambdaTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/unwrap/UnwrapLambdaTest.java @@ -78,6 +78,16 @@ public class UnwrapLambdaTest extends UnwrapTestCase { "}\n", 1); } + public void testUnwrapAssignmentWithCodeBlock() throws Exception { + assertUnwrapped("{\n" + + " Runnable r = () -> {int i = 0;};\n" + + "}\n", + + "{\n" + + " int i = 0;\n" + + "}\n"); + } + public void testUnwrapUnresolved() throws Exception { assertUnwrapped("{\n" + " () -> null;\n" +