FirCompanionGenerationProcessor: optimize a bit
This commit is contained in:
+6
-1
@@ -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 -> {}
|
||||
|
||||
Reference in New Issue
Block a user