diff --git a/java/java-analysis-impl/src/com/intellij/refactoring/extractMethod/ParametersFolder.java b/java/java-analysis-impl/src/com/intellij/refactoring/extractMethod/ParametersFolder.java index 627faaac6025..6e37637ebd2b 100644 --- a/java/java-analysis-impl/src/com/intellij/refactoring/extractMethod/ParametersFolder.java +++ b/java/java-analysis-impl/src/com/intellij/refactoring/extractMethod/ParametersFolder.java @@ -179,8 +179,11 @@ public class ParametersFolder { List expressions = null; Boolean arrayAccess = null; - for (PsiReference reference : ReferencesSearch.search(var, scope)) { - PsiElement expression = reference.getElement(); + List refExpressions = ReferencesSearch.search(var, scope).findAll().stream() + .map(ref -> ref.getElement()) + .sorted(Comparator.comparingInt(element -> element.getTextRange().getStartOffset())) + .toList(); + for (PsiElement expression : refExpressions) { if (expressions == null) { expressions = new ArrayList<>(); while (expression instanceof PsiExpression) { diff --git a/java/java-tests/testData/refactoring/extractMethod/FoldedWithNestedExpressions_after.java b/java/java-tests/testData/refactoring/extractMethod/FoldedWithNestedExpressions_after.java index 9eb8ccd66250..0a71237885bd 100644 --- a/java/java-tests/testData/refactoring/extractMethod/FoldedWithNestedExpressions_after.java +++ b/java/java-tests/testData/refactoring/extractMethod/FoldedWithNestedExpressions_after.java @@ -4,8 +4,8 @@ class Test { System.out.println(s1); } - private String newMethod(String s2, String s11) { - System.out.println(s2); + private String newMethod(String x, String s11) { + System.out.println(x); return s11; } } \ No newline at end of file