[IR] Remove DeclarationDescriptor from IrExpression* tree API

This commit is contained in:
Roman Artemev
2019-10-22 19:28:17 +03:00
committed by romanart
parent d4fc7fcd96
commit ed79ab68ab
39 changed files with 65 additions and 129 deletions
@@ -424,7 +424,7 @@ interface IrBuilderExtension {
val irExpression =
if (i is IrGetValueImpl && i.origin == IrStatementOrigin.INITIALIZE_PROPERTY_FROM_PARAMETER) {
// this is a primary constructor property, use corresponding default of value parameter
defaultsMap.getValue(i.descriptor as ParameterDescriptor)
defaultsMap.getValue(i.symbol.descriptor as ParameterDescriptor)
} else {
i
}
@@ -149,7 +149,7 @@ open class SerializerIrGenerator(val irClass: IrClass, final override val compil
method: IrFunctionSymbol
) {
annotations.forEach { annotationCall ->
if ((annotationCall.descriptor as? ClassConstructorDescriptor)?.constructedClass?.isSerialInfoAnnotation == true)
if ((annotationCall.symbol.descriptor as? ClassConstructorDescriptor)?.constructedClass?.isSerialInfoAnnotation == true)
+irInvoke(irGet(receiver), method, annotationCall.deepCopyWithVariables())
}
}
@@ -394,7 +394,7 @@ open class SerializerIrGenerator(val irClass: IrClass, final override val compil
}
val typeArgs =
if (decodeFuncToCall.owner.typeParameters.isNotEmpty()) listOf(property.type.toIrType()) else listOf()
val args = mutableListOf(localSerialDesc.get(), irInt(index))
val args = mutableListOf<IrExpression>(localSerialDesc.get(), irInt(index))
if (innerSerial != null)
args.add(innerSerial)
// local$i = localInput.decode...(...)
@@ -457,7 +457,7 @@ open class SerializerIrGenerator(val irClass: IrClass, final override val compil
context: BackendContext,
bindingContext: BindingContext
) {
val serializableDesc = getSerializableClassDescriptorBySerializer(irClass.descriptor) ?: return
val serializableDesc = getSerializableClassDescriptorBySerializer(irClass.symbol.descriptor) ?: return
if (serializableDesc.isSerializableEnum()) {
SerializerForEnumsGenerator(irClass, context, bindingContext).generate()
} else {