[IR] Remove descriptor-related methods from ReferenceSymbolTable

Replace them with calls to ReferenceSymbolTableExtension
This commit is contained in:
Dmitriy Novozhilov
2023-07-11 11:54:08 +03:00
committed by Space Team
parent 4986cb14aa
commit b886b7488d
11 changed files with 48 additions and 81 deletions
@@ -111,7 +111,7 @@ open class IrPluginContextImpl constructor(
return resolveSymbol(fqName.parent()) { scope ->
val classDescriptor = scope.getContributedClassifier(fqName.shortName(), NoLookupLocation.FROM_BACKEND) as? ClassDescriptor?
classDescriptor?.let {
st.referenceClass(it)
st.descriptorExtension.referenceClass(it)
}
}
}
@@ -122,7 +122,7 @@ open class IrPluginContextImpl constructor(
return resolveSymbol(fqName.parent()) { scope ->
val aliasDescriptor = scope.getContributedClassifier(fqName.shortName(), NoLookupLocation.FROM_BACKEND) as? TypeAliasDescriptor?
aliasDescriptor?.let {
st.referenceTypeAlias(it)
st.descriptorExtension.referenceTypeAlias(it)
}
}
}
@@ -138,7 +138,7 @@ open class IrPluginContextImpl constructor(
assert(!fqName.isRoot)
return resolveSymbolCollection(fqName.parent()) { scope ->
val descriptors = scope.getContributedFunctions(fqName.shortName(), NoLookupLocation.FROM_BACKEND)
descriptors.map { st.referenceSimpleFunction(it) }
descriptors.map { st.descriptorExtension.referenceSimpleFunction(it) }
}
}
@@ -147,7 +147,7 @@ open class IrPluginContextImpl constructor(
assert(!fqName.isRoot)
return resolveSymbolCollection(fqName.parent()) { scope ->
val descriptors = scope.getContributedVariables(fqName.shortName(), NoLookupLocation.FROM_BACKEND)
descriptors.map { st.referenceProperty(it) }
descriptors.map { st.descriptorExtension.referenceProperty(it) }
}
}
@@ -64,28 +64,28 @@ open class ExpectDeclarationRemover(val symbolTable: ReferenceSymbolTable, priva
}
override fun getActualClass(descriptor: ClassDescriptor): IrClassSymbol? {
return symbolTable.referenceClass(
return symbolTable.descriptorExtension.referenceClass(
descriptor.findActualForExpect() as? ClassDescriptor ?: return null
)
}
override fun getActualProperty(descriptor: PropertyDescriptor): ActualPropertyResult? {
val newSymbol = symbolTable.referenceProperty(
val newSymbol = symbolTable.descriptorExtension.referenceProperty(
descriptor.findActualForExpect() as? PropertyDescriptor ?: return null
)
val newGetter = newSymbol.descriptor.getter?.let { symbolTable.referenceSimpleFunction(it) }
val newSetter = newSymbol.descriptor.setter?.let { symbolTable.referenceSimpleFunction(it) }
val newGetter = newSymbol.descriptor.getter?.let { symbolTable.descriptorExtension.referenceSimpleFunction(it) }
val newSetter = newSymbol.descriptor.setter?.let { symbolTable.descriptorExtension.referenceSimpleFunction(it) }
return ActualPropertyResult(newSymbol, newGetter, newSetter)
}
override fun getActualConstructor(descriptor: ClassConstructorDescriptor): IrConstructorSymbol? {
return symbolTable.referenceConstructor(
return symbolTable.descriptorExtension.referenceConstructor(
descriptor.findActualForExpect() as? ClassConstructorDescriptor ?: return null
)
}
override fun getActualFunction(descriptor: FunctionDescriptor): IrSimpleFunctionSymbol? {
return symbolTable.referenceSimpleFunction(
return symbolTable.descriptorExtension.referenceSimpleFunction(
descriptor.findActualForExpect() as? FunctionDescriptor ?: return null
)
}
@@ -173,7 +173,7 @@ open class ExpectDeclarationRemover(val symbolTable: ReferenceSymbolTable, priva
override fun visitGetValue(expression: IrGetValue): IrExpression {
expression.transformChildrenVoid()
return expression.actualize(
classActualizer = { symbolTable.referenceClass(it.descriptor.findActualForExpect() as ClassDescriptor).owner },
classActualizer = { symbolTable.descriptorExtension.referenceClass(it.descriptor.findActualForExpect() as ClassDescriptor).owner },
functionActualizer = { symbolTable.referenceFunction(it.descriptor.findActualForExpect() as FunctionDescriptor).owner }
)
}