Drop some unused from symbol table / IR converter

This commit is contained in:
Mikhail Glukhikh
2022-07-07 12:12:36 +02:00
committed by Space
parent 18a5b3b518
commit 1a45284e86
2 changed files with 10 additions and 49 deletions
@@ -26,7 +26,6 @@ import org.jetbrains.kotlin.fir.psi
import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.signaturer.FirBasedSignatureComposer import org.jetbrains.kotlin.fir.signaturer.FirBasedSignatureComposer
import org.jetbrains.kotlin.fir.signaturer.FirMangler import org.jetbrains.kotlin.fir.signaturer.FirMangler
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.PsiIrFileEntry import org.jetbrains.kotlin.ir.PsiIrFileEntry
import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl
@@ -34,7 +33,6 @@ import org.jetbrains.kotlin.ir.declarations.impl.IrModuleFragmentImpl
import org.jetbrains.kotlin.ir.interpreter.IrInterpreter import org.jetbrains.kotlin.ir.interpreter.IrInterpreter
import org.jetbrains.kotlin.ir.interpreter.checker.EvaluationMode import org.jetbrains.kotlin.ir.interpreter.checker.EvaluationMode
import org.jetbrains.kotlin.ir.interpreter.checker.IrConstTransformer import org.jetbrains.kotlin.ir.interpreter.checker.IrConstTransformer
import org.jetbrains.kotlin.ir.symbols.*
import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.visitors.acceptVoid import org.jetbrains.kotlin.ir.visitors.acceptVoid
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
@@ -427,8 +427,6 @@ open class SymbolTable(
IrAnonymousInitializerSymbolImpl(descriptor) IrAnonymousInitializerSymbolImpl(descriptor)
) )
fun listExistedScripts() = scriptSymbolTable.descriptorToSymbol.map { it.value }
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI
fun declareScript( fun declareScript(
descriptor: ScriptDescriptor, descriptor: ScriptDescriptor,
@@ -443,18 +441,6 @@ open class SymbolTable(
) )
} }
fun declareScript(
sig: IdSignature,
symbolFactory: () -> IrScriptSymbol,
classFactory: (IrScriptSymbol) -> IrScript
): IrScript {
return scriptSymbolTable.declare(
sig,
symbolFactory,
classFactory
)
}
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI
override fun referenceScript(descriptor: ScriptDescriptor): IrScriptSymbol = override fun referenceScript(descriptor: ScriptDescriptor): IrScriptSymbol =
scriptSymbolTable.referenced(descriptor) { IrScriptSymbolImpl(descriptor) } scriptSymbolTable.referenced(descriptor) { IrScriptSymbolImpl(descriptor) }
@@ -494,7 +480,9 @@ open class SymbolTable(
fun declareClassIfNotExists(descriptor: ClassDescriptor, classFactory: (IrClassSymbol) -> IrClass): IrClass = fun declareClassIfNotExists(descriptor: ClassDescriptor, classFactory: (IrClassSymbol) -> IrClass): IrClass =
classSymbolTable.declareIfNotExists(descriptor, { signature -> createClassSymbol(descriptor, signature) }, classFactory) classSymbolTable.declareIfNotExists(descriptor, { signature -> createClassSymbol(descriptor, signature) }, classFactory)
// Note: used in native
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI
@Suppress("unused")
fun declareClassFromLinker(descriptor: ClassDescriptor, sig: IdSignature, factory: (IrClassSymbol) -> IrClass): IrClass { fun declareClassFromLinker(descriptor: ClassDescriptor, sig: IdSignature, factory: (IrClassSymbol) -> IrClass): IrClass {
return classSymbolTable.run { return classSymbolTable.run {
if (sig.isPubliclyVisible) { if (sig.isPubliclyVisible) {
@@ -526,9 +514,6 @@ open class SymbolTable(
) = ) =
classSymbolTable.referenced(sig) { declareClass(sig, symbolFactory, classFactory).symbol } classSymbolTable.referenced(sig) { declareClass(sig, symbolFactory, classFactory).symbol }
fun referenceClassIfAny(sig: IdSignature): IrClassSymbol? =
classSymbolTable.get(sig)
override fun referenceClass(sig: IdSignature, reg: Boolean): IrClassSymbol = override fun referenceClass(sig: IdSignature, reg: Boolean): IrClassSymbol =
classSymbolTable.run { classSymbolTable.run {
if (sig.isPubliclyVisible) referenced(sig, reg) { IrClassPublicSymbolImpl(sig) } if (sig.isPubliclyVisible) referenced(sig, reg) { IrClassPublicSymbolImpl(sig) }
@@ -587,7 +572,9 @@ open class SymbolTable(
fun referenceConstructorIfAny(sig: IdSignature): IrConstructorSymbol? = fun referenceConstructorIfAny(sig: IdSignature): IrConstructorSymbol? =
constructorSymbolTable.get(sig) constructorSymbolTable.get(sig)
// Note: used in native
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI
@Suppress("unused")
fun declareConstructorFromLinker( fun declareConstructorFromLinker(
descriptor: ClassConstructorDescriptor, descriptor: ClassConstructorDescriptor,
sig: IdSignature, sig: IdSignature,
@@ -636,7 +623,9 @@ open class SymbolTable(
fun declareEnumEntryIfNotExists(descriptor: ClassDescriptor, factory: (IrEnumEntrySymbol) -> IrEnumEntry): IrEnumEntry = fun declareEnumEntryIfNotExists(descriptor: ClassDescriptor, factory: (IrEnumEntrySymbol) -> IrEnumEntry): IrEnumEntry =
enumEntrySymbolTable.declareIfNotExists(descriptor, { signature -> createEnumEntrySymbol(descriptor, signature) }, factory) enumEntrySymbolTable.declareIfNotExists(descriptor, { signature -> createEnumEntrySymbol(descriptor, signature) }, factory)
// Note: used in native
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI
@Suppress("unused")
fun declareEnumEntryFromLinker( fun declareEnumEntryFromLinker(
descriptor: ClassDescriptor, descriptor: ClassDescriptor,
sig: IdSignature, sig: IdSignature,
@@ -715,14 +704,6 @@ open class SymbolTable(
) )
} }
@ObsoleteDescriptorBasedAPI
fun declareFieldFromLinker(descriptor: PropertyDescriptor, sig: IdSignature, factory: (IrFieldSymbol) -> IrField): IrField {
return fieldSymbolTable.run {
require(sig.isLocal || sig.isPubliclyVisible)
declare(descriptor, { if (sig.isPubliclyVisible) IrFieldPublicSymbolImpl(sig, descriptor) else IrFieldSymbolImpl() }, factory)
}
}
fun declareFieldWithSignature(sig: IdSignature, symbol: IrFieldSymbol) { fun declareFieldWithSignature(sig: IdSignature, symbol: IrFieldSymbol) {
fieldSymbolTable.set(sig, symbol) fieldSymbolTable.set(sig, symbol)
} }
@@ -797,7 +778,9 @@ open class SymbolTable(
fun declarePropertyIfNotExists(descriptor: PropertyDescriptor, propertyFactory: (IrPropertySymbol) -> IrProperty): IrProperty = fun declarePropertyIfNotExists(descriptor: PropertyDescriptor, propertyFactory: (IrPropertySymbol) -> IrProperty): IrProperty =
propertySymbolTable.declareIfNotExists(descriptor, { signature -> createPropertySymbol(descriptor, signature) }, propertyFactory) propertySymbolTable.declareIfNotExists(descriptor, { signature -> createPropertySymbol(descriptor, signature) }, propertyFactory)
// Note: used in native
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI
@Suppress("unused")
fun declarePropertyFromLinker(descriptor: PropertyDescriptor, sig: IdSignature, factory: (IrPropertySymbol) -> IrProperty): IrProperty { fun declarePropertyFromLinker(descriptor: PropertyDescriptor, sig: IdSignature, factory: (IrPropertySymbol) -> IrProperty): IrProperty {
return propertySymbolTable.run { return propertySymbolTable.run {
if (sig.isPubliclyVisible) { if (sig.isPubliclyVisible) {
@@ -894,7 +877,9 @@ open class SymbolTable(
descriptor, { signature -> createSimpleFunctionSymbol(descriptor, signature) }, functionFactory descriptor, { signature -> createSimpleFunctionSymbol(descriptor, signature) }, functionFactory
) )
// Note: used in native
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI
@Suppress("unused")
fun declareSimpleFunctionFromLinker( fun declareSimpleFunctionFromLinker(
descriptor: FunctionDescriptor?, descriptor: FunctionDescriptor?,
sig: IdSignature, sig: IdSignature,
@@ -993,21 +978,6 @@ open class SymbolTable(
return typeParameterFactory(symbolFactory(sig)) return typeParameterFactory(symbolFactory(sig))
} }
@ObsoleteDescriptorBasedAPI
fun declareScopedTypeParameterFromLinker(
descriptor: TypeParameterDescriptor,
sig: IdSignature,
typeParameterFactory: (IrTypeParameterSymbol) -> IrTypeParameter
): IrTypeParameter {
return scopedTypeParameterSymbolTable.declare(
descriptor,
{
if (sig.isPubliclyVisible) IrTypeParameterPublicSymbolImpl(sig, descriptor)
else IrTypeParameterSymbolImpl(descriptor)
}, typeParameterFactory
)
}
val unboundTypeParameters: Set<IrTypeParameterSymbol> get() = globalTypeParameterSymbolTable.unboundSymbols val unboundTypeParameters: Set<IrTypeParameterSymbol> get() = globalTypeParameterSymbolTable.unboundSymbols
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI
@@ -1185,13 +1155,6 @@ inline fun <T> SymbolTable.withScope(owner: IrDeclaration, block: SymbolTable.()
return result return result
} }
inline fun <T> ReferenceSymbolTable.withReferenceScope(owner: IrSymbol, block: ReferenceSymbolTable.() -> T): T {
enterScope(owner)
val result = block()
leaveScope(owner)
return result
}
inline fun <T> ReferenceSymbolTable.withReferenceScope(owner: IrDeclaration, block: ReferenceSymbolTable.() -> T): T { inline fun <T> ReferenceSymbolTable.withReferenceScope(owner: IrDeclaration, block: ReferenceSymbolTable.() -> T): T {
enterScope(owner) enterScope(owner)
val result = block() val result = block()