From 01be87cc6bac26311e0150096c29ee81150aba87 Mon Sep 17 00:00:00 2001 From: Artemy Pestretsov Date: Wed, 14 Apr 2021 21:33:10 +0300 Subject: [PATCH] WI-59905 Support extracting duplicates when changed param is also output variable GitOrigin-RevId: 2292b61d367a5f040e415547ff45a38cb10aec64 --- .../refactoring/extractMethod/SimpleDuplicatesFinder.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/refactoring/extractMethod/SimpleDuplicatesFinder.java b/platform/lang-impl/src/com/intellij/refactoring/extractMethod/SimpleDuplicatesFinder.java index b791e95a7b0d..4951e9d9edbc 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/extractMethod/SimpleDuplicatesFinder.java +++ b/platform/lang-impl/src/com/intellij/refactoring/extractMethod/SimpleDuplicatesFinder.java @@ -146,6 +146,9 @@ public class SimpleDuplicatesFinder { final PsiElement candidateParent = candidate.getParent(); if (patternParent == null || candidateParent == null) return false; if (pattern.getUserData(PARAMETER) != null && patternParent.getClass() == candidateParent.getClass()) { + if (myOutputVariables.contains(pattern.getText())) { + match.changeOutput(candidate.getText()); + } return changeParameter(pattern.getText(), candidate.getText(), match); } if (children1.length != children2.length) return false; @@ -158,6 +161,9 @@ public class SimpleDuplicatesFinder { if (children1.length == 0) { if (pattern.getUserData(PARAMETER) != null && patternParent.getClass() == candidateParent.getClass()) { + if (myOutputVariables.contains(pattern.getText())) { + match.changeOutput(candidate.getText()); + } return changeParameter(pattern.getText(), candidate.getText(), match); } if (myOutputVariables.contains(pattern.getText())) {