[IR] Remove descriptor-related methods from SymbolTable
Replace them with calls to SymbolTableExtension
This commit is contained in:
committed by
Space Team
parent
b886b7488d
commit
8ad202eb8b
+1
-1
@@ -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)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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? {
|
||||
|
||||
+3
-3
@@ -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
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user