[FIR] FirScriptConfiguratorExtensionImpl: avoid creation of dummy elements
This will reduce memory and CPU consumption ^KT-61186
This commit is contained in:
+1
-8
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.scripting.compiler.plugin.services
|
package org.jetbrains.kotlin.scripting.compiler.plugin.services
|
||||||
|
|
||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import com.intellij.openapi.project.Project
|
|
||||||
import org.jetbrains.kotlin.*
|
import org.jetbrains.kotlin.*
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
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.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.KtPsiFactory
|
|
||||||
import org.jetbrains.kotlin.scripting.definitions.annotationsForSamWithReceivers
|
import org.jetbrains.kotlin.scripting.definitions.annotationsForSamWithReceivers
|
||||||
import org.jetbrains.kotlin.scripting.resolve.KtFileScriptSource
|
import org.jetbrains.kotlin.scripting.resolve.KtFileScriptSource
|
||||||
import org.jetbrains.kotlin.scripting.resolve.VirtualFileScriptSource
|
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 stripped = if (endsWithStar) trimmed.substring(0, trimmed.length - 2) else trimmed
|
||||||
val fqName = FqName.fromSegments(stripped.split("."))
|
val fqName = FqName.fromSegments(stripped.split("."))
|
||||||
fileBuilder.imports += buildImport {
|
fileBuilder.imports += buildImport {
|
||||||
fileBuilder.sourceFile?.project()?.let {
|
source = fileBuilder.source?.fakeElement(KtFakeSourceElementKind.ImplicitImport)
|
||||||
val dummyElement = KtPsiFactory(it, markGenerated = true).createColon()
|
|
||||||
source = KtFakeSourceElement(dummyElement, KtFakeSourceElementKind.ImplicitImport)
|
|
||||||
}
|
|
||||||
importedFqName = fqName
|
importedFqName = fqName
|
||||||
isAllUnder = endsWithStar
|
isAllUnder = endsWithStar
|
||||||
}
|
}
|
||||||
@@ -217,8 +212,6 @@ class FirScriptConfiguratorExtensionImpl(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun KtSourceFile.project(): Project? = (toSourceCode() as? KtFileScriptSource)?.ktFile?.project
|
|
||||||
|
|
||||||
private fun SourceCode.originalKtFile(): KtFile =
|
private fun SourceCode.originalKtFile(): KtFile =
|
||||||
(this as? KtFileScriptSource)?.ktFile?.originalFile as? KtFile
|
(this as? KtFileScriptSource)?.ktFile?.originalFile as? KtFile
|
||||||
?: error("only PSI scripts are supported at the moment")
|
?: error("only PSI scripts are supported at the moment")
|
||||||
|
|||||||
Reference in New Issue
Block a user