diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInliner/UsageReplacementStrategy.kt b/idea/src/org/jetbrains/kotlin/idea/codeInliner/UsageReplacementStrategy.kt index d65d892c7a1..6a628511ba5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInliner/UsageReplacementStrategy.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInliner/UsageReplacementStrategy.kt @@ -86,29 +86,6 @@ private fun UsageReplacementStrategy.doRefactoringInside( } } -// Sort them in the following order: children first, parents second -// NB: this is topological sort implementation -private fun Collection.sortChildrenFirst(): List { - val usagesSet = toSet() - val result = mutableListOf() - val visited = hashSetOf() - - fun visit(expr: KtSimpleNameExpression) { - if (expr in visited) return - visited += expr - - expr.parent.forEachDescendantOfType { - if (it != expr && it in usagesSet) visit(it) - } - - result += expr - } - - this.forEach(::visit) - assert(result.size == this.size) - return result -} - fun UsageReplacementStrategy.replaceUsages( usages: Collection, targetPsiElement: PsiElement, @@ -157,7 +134,7 @@ private fun UsageReplacementStrategy.processUsages( importsToDelete: MutableList ): Boolean { var invalidUsagesFound = false - for (usage in usages.sortChildrenFirst()) { + for (usage in usages) { try { if (!usage.isValid) { invalidUsagesFound = true