Do not use canonical paths in OutsidersPsiFileSupportUtils (EA-135551)

EA-135551 - IOE: OutsidersPsiFileSupportUtils$getOutsiderFileOrigin$.invoke
This commit is contained in:
Natalia Selezneva
2019-04-12 14:18:25 +03:00
parent 98235952ad
commit 836006b3f3
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.idea.highlighter
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VfsUtil import com.intellij.openapi.vfs.VfsUtil
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
import java.io.File import java.nio.file.Paths
object OutsidersPsiFileSupportUtils { object OutsidersPsiFileSupportUtils {
fun getOutsiderFileOrigin(project: Project, virtualFile: VirtualFile): VirtualFile? { fun getOutsiderFileOrigin(project: Project, virtualFile: VirtualFile): VirtualFile? {
@@ -16,9 +16,8 @@ object OutsidersPsiFileSupportUtils {
val originalFilePath = OutsidersPsiFileSupportWrapper.getOriginalFilePath(virtualFile) ?: return null val originalFilePath = OutsidersPsiFileSupportWrapper.getOriginalFilePath(virtualFile) ?: return null
return generateSequence(File(originalFilePath)) { if (it.canonicalPath == project.baseDir.canonicalPath) null else it.parentFile } return generateSequence(VfsUtil.findFile(Paths.get(originalFilePath), true)) {
.filter { it.exists() } if (it == project.baseDir) null else it.parent
.firstOrNull() }.filter { it.exists() }.firstOrNull()
?.let { VfsUtil.findFileByIoFile(it, false) }
} }
} }