Drop some unused from symbol table / IR converter
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user