[FIR2IR] Part 2. Don't create class symbols with signature

Signature calculation was already disabled for almost all cases in the
  scope of KT-64990
This commit is contained in:
Dmitriy Novozhilov
2024-02-21 10:23:35 +02:00
committed by Space Team
parent 9c21c2214a
commit d0c9353d41
@@ -24,7 +24,6 @@ import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.symbols.* import org.jetbrains.kotlin.ir.symbols.*
import org.jetbrains.kotlin.ir.symbols.impl.* import org.jetbrains.kotlin.ir.symbols.impl.*
import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.util.IdSignature
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.SpecialNames import org.jetbrains.kotlin.name.SpecialNames
import org.jetbrains.kotlin.utils.addToStdlib.runIf import org.jetbrains.kotlin.utils.addToStdlib.runIf
@@ -178,18 +177,15 @@ class Fir2IrClassifierStorage(
parent: IrDeclarationParent, parent: IrDeclarationParent,
predefinedOrigin: IrDeclarationOrigin? = null predefinedOrigin: IrDeclarationOrigin? = null
): IrClass { ): IrClass {
val symbol = createClassSymbol(signature = null) val symbol = createClassSymbol()
return classifiersGenerator.createIrClass(regularClass, parent, symbol, predefinedOrigin).also { return classifiersGenerator.createIrClass(regularClass, parent, symbol, predefinedOrigin).also {
@OptIn(LeakedDeclarationCaches::class) @OptIn(LeakedDeclarationCaches::class)
cacheIrClass(regularClass, it) cacheIrClass(regularClass, it)
} }
} }
private fun createClassSymbol(signature: IdSignature?): IrClassSymbol { private fun createClassSymbol(): IrClassSymbol {
return when { return IrClassSymbolImpl()
signature != null -> symbolTable.referenceClass(signature)
else -> IrClassSymbolImpl()
}
} }
@LeakedDeclarationCaches @LeakedDeclarationCaches
@@ -216,7 +212,7 @@ class Fir2IrClassifierStorage(
return createAndCacheLocalIrClassOnTheFly(firClass) return createAndCacheLocalIrClassOnTheFly(firClass)
} }
require(firClass is FirRegularClass) require(firClass is FirRegularClass)
val symbol = createClassSymbol(signature = null) val symbol = createClassSymbol()
val classId = firClass.symbol.classId val classId = firClass.symbol.classId
val parentId = classId.outerClassId val parentId = classId.outerClassId
val parentClass = parentId?.let { session.symbolProvider.getClassLikeSymbolByClassId(it) } val parentClass = parentId?.let { session.symbolProvider.getClassLikeSymbolByClassId(it) }
@@ -418,8 +414,7 @@ class Fir2IrClassifierStorage(
} }
fun createAndCacheCodeFragmentClass(codeFragment: FirCodeFragment, containingFile: IrFile): IrClass { fun createAndCacheCodeFragmentClass(codeFragment: FirCodeFragment, containingFile: IrFile): IrClass {
val signature = signatureComposer.composeSignature(codeFragment) val symbol = createClassSymbol()
val symbol = createClassSymbol(signature)
return classifiersGenerator.createCodeFragmentClass(codeFragment, containingFile, symbol).also { return classifiersGenerator.createCodeFragmentClass(codeFragment, containingFile, symbol).also {
codeFragmentCache[codeFragment] = it codeFragmentCache[codeFragment] = it
} }