FIR2IR: drop unused members from Fir2IrBindableSymbol & its inheritors

This commit is contained in:
Mikhail Glukhikh
2023-04-28 13:41:10 +02:00
committed by Space Team
parent af4ef048be
commit db45f5f7db
4 changed files with 13 additions and 30 deletions
@@ -61,7 +61,6 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.NameUtils
import org.jetbrains.kotlin.name.SpecialNames
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.utils.KotlinExceptionWithAttachments
import org.jetbrains.kotlin.utils.addToStdlib.runUnless
import org.jetbrains.kotlin.utils.threadLocal
@@ -493,13 +492,12 @@ class Fir2IrDeclarationStorage(
internal fun declareIrSimpleFunction(
signature: IdSignature?,
containerSource: DeserializedContainerSource?,
factory: (IrSimpleFunctionSymbol) -> IrSimpleFunction
): IrSimpleFunction =
if (signature == null) {
factory(IrSimpleFunctionSymbolImpl())
} else {
symbolTable.declareSimpleFunction(signature, { Fir2IrSimpleFunctionSymbol(signature, containerSource) }, factory)
symbolTable.declareSimpleFunction(signature, { Fir2IrSimpleFunctionSymbol(signature) }, factory)
}
fun getOrCreateIrFunction(
@@ -568,7 +566,7 @@ class Fir2IrDeclarationStorage(
if (isLambda) ((function as FirAnonymousFunction).typeRef as? FirResolvedTypeRef)?.type?.isSuspendOrKSuspendFunctionType(session) == true
else simpleFunction?.isSuspend == true
val created = function.convertWithOffsets { startOffset, endOffset ->
val result = declareIrSimpleFunction(signature, simpleFunction?.containerSource) { symbol ->
val result = declareIrSimpleFunction(signature) { symbol ->
classifierStorage.preCacheTypeParameters(function, symbol)
irFactory.createFunction(
startOffset, endOffset, updatedOrigin, symbol,
@@ -694,13 +692,12 @@ class Fir2IrDeclarationStorage(
private fun declareIrAccessor(
signature: IdSignature?,
containerSource: DeserializedContainerSource?,
factory: (IrSimpleFunctionSymbol) -> IrSimpleFunction
): IrSimpleFunction =
if (signature == null)
factory(IrSimpleFunctionSymbolImpl())
else
symbolTable.declareSimpleFunction(signature, { Fir2IrSimpleFunctionSymbol(signature, containerSource) }, factory)
symbolTable.declareSimpleFunction(signature, { Fir2IrSimpleFunctionSymbol(signature) }, factory)
private fun createIrPropertyAccessor(
propertyAccessor: FirPropertyAccessor?,
@@ -725,8 +722,7 @@ class Fir2IrDeclarationStorage(
}
val containerSource = (correspondingProperty as? IrProperty)?.containerSource
return declareIrAccessor(
signature,
containerSource
signature
) { symbol ->
val accessorReturnType = if (isSetter) irBuiltIns.unitType else propertyType
val visibility = propertyAccessor?.visibility?.let {
@@ -824,13 +820,12 @@ class Fir2IrDeclarationStorage(
private fun declareIrProperty(
signature: IdSignature?,
containerSource: DeserializedContainerSource?,
factory: (IrPropertySymbol) -> IrProperty
): IrProperty =
if (signature == null)
factory(IrPropertySymbolImpl())
else
symbolTable.declareProperty(signature, { Fir2IrPropertySymbol(signature, containerSource) }, factory)
symbolTable.declareProperty(signature, { Fir2IrPropertySymbol(signature) }, factory)
private fun declareIrField(factory: (IrFieldSymbol) -> IrField): IrField =
factory(IrFieldSymbolImpl())
@@ -903,7 +898,7 @@ class Fir2IrDeclarationStorage(
return createIrLazyProperty(property, signature, irParent, origin)
}
return property.convertWithOffsets { startOffset, endOffset ->
val result = declareIrProperty(signature, property.containerSource) { symbol ->
val result = declareIrProperty(signature) { symbol ->
classifierStorage.preCacheTypeParameters(property, symbol)
irFactory.createProperty(
startOffset, endOffset, origin, symbol,
@@ -1446,10 +1441,7 @@ class Fir2IrDeclarationStorage(
fun IrProperty.isIllegalFakeOverride(): Boolean {
if (!isFakeOverride) return false
val overriddenSymbols = overriddenSymbols
if (overriddenSymbols.isEmpty() || overriddenSymbols.any { it.owner.isIllegalFakeOverride() }) {
return true
}
return false
return overriddenSymbols.isEmpty() || overriddenSymbols.any { it.owner.isIllegalFakeOverride() }
}
if (fakeOverrideOwnerLookupTag != null &&
@@ -1473,7 +1465,7 @@ class Fir2IrDeclarationStorage(
lazyParent: IrDeclarationParent,
declarationOrigin: IrDeclarationOrigin
): IrProperty {
val symbol = Fir2IrPropertySymbol(signature, fir.containerSource)
val symbol = Fir2IrPropertySymbol(signature)
val firPropertySymbol = fir.symbol
val irProperty = fir.convertWithOffsets { startOffset, endOffset ->
symbolTable.declareProperty(signature, { symbol }) {
@@ -306,7 +306,7 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) : Fir2IrCompon
)
}
val signature = if (lookupTag.classId.isLocal) null else components.signatureComposer.composeSignature(firFunction)
return components.declarationStorage.declareIrSimpleFunction(signature, null) { symbol ->
return components.declarationStorage.declareIrSimpleFunction(signature) { symbol ->
components.irFactory.createFunction(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, symbol, name, DescriptorVisibilities.PUBLIC, Modality.OPEN, returnType,
isInline = false, isExternal = false, isTailrec = false, isSuspend = false, isOperator = false,
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
abstract class Fir2IrBindableSymbol<out D : DeclarationDescriptor, B : IrDeclaration>(
override val signature: IdSignature,
private val containerSource: DeserializedContainerSource? = null
) : IrBindableSymbol<D, B> {
private var _owner: B? = null
@@ -49,9 +48,4 @@ abstract class Fir2IrBindableSymbol<out D : DeclarationDescriptor, B : IrDeclara
if (isBound) return owner.render()
return "Unbound public symbol for $signature"
}
companion object {
private const val GETTER_PREFIX = "<get"
private const val SETTER_PREFIX = "<set"
}
}
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.symbols.*
import org.jetbrains.kotlin.ir.util.IdSignature
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
class Fir2IrClassSymbol(signature: IdSignature) :
Fir2IrBindableSymbol<ClassDescriptor, IrClass>(signature),
@@ -24,9 +23,8 @@ class Fir2IrEnumEntrySymbol(signature: IdSignature) :
IrEnumEntrySymbol
class Fir2IrSimpleFunctionSymbol(
signature: IdSignature,
containerSource: DeserializedContainerSource? = null
) : Fir2IrBindableSymbol<FunctionDescriptor, IrSimpleFunction>(signature, containerSource),
signature: IdSignature
) : Fir2IrBindableSymbol<FunctionDescriptor, IrSimpleFunction>(signature),
IrSimpleFunctionSymbol
class Fir2IrConstructorSymbol(signature: IdSignature) :
@@ -34,9 +32,8 @@ class Fir2IrConstructorSymbol(signature: IdSignature) :
IrConstructorSymbol
class Fir2IrPropertySymbol(
signature: IdSignature,
containerSource: DeserializedContainerSource? = null
) : Fir2IrBindableSymbol<PropertyDescriptor, IrProperty>(signature, containerSource),
signature: IdSignature
) : Fir2IrBindableSymbol<PropertyDescriptor, IrProperty>(signature),
IrPropertySymbol
class Fir2IrScriptSymbol(signature: IdSignature) :