diff --git a/platform/testFramework/src/com/intellij/util/io/FileTreePrinter.kt b/platform/testFramework/src/com/intellij/util/io/FileTreePrinter.kt index aef408cfcb75..800b4503a1a8 100644 --- a/platform/testFramework/src/com/intellij/util/io/FileTreePrinter.kt +++ b/platform/testFramework/src/com/intellij/util/io/FileTreePrinter.kt @@ -4,7 +4,6 @@ package com.intellij.util.io import com.intellij.util.containers.nullize import java.nio.charset.MalformedInputException import java.nio.file.Path -import java.util.* @JvmOverloads fun Path.getDirectoryTree(excluded: Set = emptySet(), printContent: Boolean = true): String { @@ -14,7 +13,7 @@ fun Path.getDirectoryTree(excluded: Set = emptySet(), printContent: Bool } private fun getDirectoryTree(dir: Path, indent: Int, sb: StringBuilder, excluded: Set, printContent: Boolean) { - val fileList = sortedFileList(dir)?.filter { !excluded.contains(it.fileName.toString()) }.nullize() ?: return + val fileList = sortedFileList(dir, excluded).nullize() ?: return getIndentString(indent, sb) if (printContent) { @@ -33,10 +32,13 @@ private fun getDirectoryTree(dir: Path, indent: Int, sb: StringBuilder, excluded } } -private fun sortedFileList(dir: Path): List? { +private fun sortedFileList(dir: Path, excluded: Set?): List? { return dir.directoryStreamIfExists { stream -> - val list = ArrayList() - stream.asSequence().mapTo(list) { it }.sorted() + var sequence = stream.asSequence() + if (!excluded.isNullOrEmpty()) { + sequence = sequence.filter { excluded.contains(it.fileName.toString()) } + } + val list = sequence.toMutableList() list.sort() list }