[FIR] FirScriptConfiguratorExtensionImpl: avoid creation of dummy elements

This will reduce memory and CPU consumption

^KT-61186
This commit is contained in:
Dmitrii Gridin
2023-10-19 14:37:35 +02:00
parent e827f260e7
commit f66bb1bcb7
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.scripting.compiler.plugin.services
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.*
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibilities
@@ -35,7 +34,6 @@ import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtPsiFactory
import org.jetbrains.kotlin.scripting.definitions.annotationsForSamWithReceivers
import org.jetbrains.kotlin.scripting.resolve.KtFileScriptSource
import org.jetbrains.kotlin.scripting.resolve.VirtualFileScriptSource
@@ -65,10 +63,7 @@ class FirScriptConfiguratorExtensionImpl(
val stripped = if (endsWithStar) trimmed.substring(0, trimmed.length - 2) else trimmed
val fqName = FqName.fromSegments(stripped.split("."))
fileBuilder.imports += buildImport {
fileBuilder.sourceFile?.project()?.let {
val dummyElement = KtPsiFactory(it, markGenerated = true).createColon()
source = KtFakeSourceElement(dummyElement, KtFakeSourceElementKind.ImplicitImport)
}
source = fileBuilder.source?.fakeElement(KtFakeSourceElementKind.ImplicitImport)
importedFqName = fqName
isAllUnder = endsWithStar
}
@@ -217,8 +212,6 @@ class FirScriptConfiguratorExtensionImpl(
}
}
private fun KtSourceFile.project(): Project? = (toSourceCode() as? KtFileScriptSource)?.ktFile?.project
private fun SourceCode.originalKtFile(): KtFile =
(this as? KtFileScriptSource)?.ktFile?.originalFile as? KtFile
?: error("only PSI scripts are supported at the moment")