From 669f4ee67a59ebbbc02ef071ffb6f939a4677544 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Tue, 12 Mar 2019 10:23:03 +0700 Subject: [PATCH] ExtractMethodObjectProcessor: revert c652bbf2ea; add a comment why UnsafeReturnStatementVisitor is non-applicable here --- .../extractMethodObject/ExtractMethodObjectProcessor.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java index 4b88ecc0eddf..ebc8f5d368da 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java @@ -565,6 +565,9 @@ public class ExtractMethodObjectProcessor extends BaseRefactoringProcessor { private void adjustTargetClassReferences(final PsiElement body) throws IncorrectOperationException { PsiManager manager = PsiManager.getInstance(myProject); PsiClass targetClass = getMethod().getContainingClass(); + //Actually we should go into lambdas as this/super expressions inside them still refer to the outer class instance. + //Visiting returns inside lambdas is safe as they never have GENERATED_RETURN inside + //noinspection UnsafeReturnStatementVisitor body.accept(new JavaRecursiveElementVisitor() { @Override public void visitReturnStatement(PsiReturnStatement statement) { @@ -587,11 +590,6 @@ public class ExtractMethodObjectProcessor extends BaseRefactoringProcessor { } } - @Override - public void visitLambdaExpression(PsiLambdaExpression expression) { - // do not visit lambdas - } - @Override public void visitClass(PsiClass aClass) { // do not visit sub classes