FirCompanionGenerationProcessor: optimize a bit

This commit is contained in:
Mikhail Glukhikh
2022-03-01 11:05:57 +03:00
committed by Space
parent 9aaf7b7d24
commit f32cdef760
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.utils.classId
import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.extensions.FirSwitchableExtensionDeclarationsSymbolProvider
import org.jetbrains.kotlin.fir.extensions.generatedDeclarationsSymbolProvider
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.resolve.transformers.FirTransformerBasedResolveProcessor
@@ -25,11 +26,15 @@ class FirCompanionGenerationProcessor(
}
class FirCompanionGenerationTransformer(val session: FirSession) : FirTransformer<Nothing?>() {
lateinit var generatedDeclarationProvider: FirSwitchableExtensionDeclarationsSymbolProvider
override fun <E : FirElement> transformElement(element: E, data: Nothing?): E {
return element
}
override fun transformFile(file: FirFile, data: Nothing?): FirFile {
generatedDeclarationProvider = session.generatedDeclarationsSymbolProvider ?: return file
return file.transformDeclarations(this, data)
}
@@ -40,7 +45,7 @@ class FirCompanionGenerationTransformer(val session: FirSession) : FirTransforme
private fun generateCompanion(regularClass: FirRegularClass) {
// TODO: add proper error reporting
val generatedDeclarationProvider = session.generatedDeclarationsSymbolProvider ?: return
generatedDeclarationProvider = session.generatedDeclarationsSymbolProvider ?: return
val companionClassId = regularClass.classId.createNestedClassId(SpecialNames.DEFAULT_NAME_FOR_COMPANION_OBJECT)
when (val generatedCompanion = generatedDeclarationProvider.getClassLikeSymbolByClassId(companionClassId)) {
null -> {}