[FIR] Refactor deserialized dependency providers and session factories with FirModuleData

This commit is contained in:
Dmitriy Novozhilov
2021-04-30 16:57:46 +03:00
committed by TeamCityServer
parent 24f1f7b7b2
commit 02c58b7a8f
23 changed files with 566 additions and 196 deletions
@@ -26,6 +26,8 @@ import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.util.PerformanceCounter
import java.io.FileNotFoundException
import java.io.IOException
import java.nio.file.Path
import java.nio.file.Paths
class VirtualFileKotlinClass private constructor(
val file: VirtualFile,
@@ -38,6 +40,9 @@ class VirtualFileKotlinClass private constructor(
override val location: String
get() = file.path
override val containingLibrary: Path?
get() = file.path.split("!/").firstOrNull()?.let { Paths.get(it) }
override fun getFileContents(): ByteArray {
try {
return file.contentsToByteArray()
@@ -61,7 +66,7 @@ class VirtualFileKotlinClass private constructor(
try {
val byteContent = fileContent ?: file.contentsToByteArray(false)
if (byteContent.isNotEmpty()) {
val kotlinJvmBinaryClass = FileBasedKotlinClass.create(byteContent) { name, classVersion, header, innerClasses ->
val kotlinJvmBinaryClass = create(byteContent) { name, classVersion, header, innerClasses ->
VirtualFileKotlinClass(file, name, classVersion, header, innerClasses)
}