[IR] Remove descriptor-related methods from SymbolTable

Replace them with calls to SymbolTableExtension
This commit is contained in:
Dmitriy Novozhilov
2023-07-11 12:17:59 +03:00
committed by Space Team
parent b886b7488d
commit 8ad202eb8b
55 changed files with 349 additions and 675 deletions
@@ -172,7 +172,7 @@ open class JvmGeneratorExtensionsImpl(
return IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
ktPureClassOrObject.pureStartOffset, ktPureClassOrObject.pureEndOffset,
context.irBuiltIns.unitType,
context.symbolTable.referenceConstructor(recordConstructor)
context.symbolTable.descriptorExtension.referenceConstructor(recordConstructor)
)
}
@@ -54,7 +54,7 @@ class SymbolTableWithBuiltInsDeduplication(
*/
@ObsoleteDescriptorBasedAPI
override fun referenceClass(descriptor: ClassDescriptor): IrClassSymbol {
val irBuiltIns = this.irBuiltIns ?: return super.referenceClass(descriptor)
val irBuiltIns = this.irBuiltIns ?: return super.descriptorExtension.referenceClass(descriptor)
// We need to find out whether `descriptor` is possibly a built-in symbol before it's actually retrieved to break recursion as
// `irBuiltIns.findClass` uses `referenceClass` recursively.
@@ -62,10 +62,10 @@ class SymbolTableWithBuiltInsDeduplication(
if (builtInDescriptor != null) {
// We need to delegate to the supertype implementation here to break recursion. `findBuiltInClassDescriptor` will return
// `descriptor` even if `descriptor` was found via `findBuiltInClassDescriptor`.
return super.referenceClass(builtInDescriptor)
return super.descriptorExtension.referenceClass(builtInDescriptor)
}
return super.referenceClass(descriptor)
return super.descriptorExtension.referenceClass(descriptor)
}
private fun IrBuiltInsOverDescriptors.findBuiltInClassDescriptor(descriptor: ClassDescriptor): ClassDescriptor? {
@@ -36,12 +36,12 @@ class UndiscoveredExpectVisitor(
) : KtTreeVisitorVoid() {
override fun visitClassOrObject(classOrObject: KtClassOrObject) {
super.visitClassOrObject(classOrObject)
symbolTable.referenceClass(classOrObject.findExpectForActual(BindingContext.CLASS) ?: return)
symbolTable.descriptorExtension.referenceClass(classOrObject.findExpectForActual(BindingContext.CLASS) ?: return)
}
override fun visitTypeAlias(typeAlias: KtTypeAlias) {
super.visitTypeAlias(typeAlias)
symbolTable.referenceTypeAlias(typeAlias.findExpectForActual(BindingContext.TYPE_ALIAS) ?: return)
symbolTable.descriptorExtension.referenceTypeAlias(typeAlias.findExpectForActual(BindingContext.TYPE_ALIAS) ?: return)
}
override fun visitPrimaryConstructor(constructor: KtPrimaryConstructor) {
@@ -65,7 +65,7 @@ class UndiscoveredExpectVisitor(
override fun visitProperty(property: KtProperty) {
super.visitProperty(property)
symbolTable.referenceProperty(
symbolTable.descriptorExtension.referenceProperty(
property.findExpectForActualOfType<PropertyDescriptor, _, _>(BindingContext.VARIABLE) ?: return
)
}