IR metadata source: do not require descriptor in property metadata

This commit is contained in:
Mikhail Glukhikh
2020-06-08 14:30:34 +03:00
parent 6f0eeecc64
commit 261ed46341
7 changed files with 20 additions and 16 deletions
@@ -134,7 +134,7 @@ class DescriptorBasedClassCodegen internal constructor(
}
override fun bindFieldMetadata(field: IrField, fieldType: Type, fieldName: String) {
val descriptor = field.metadata?.descriptor
val descriptor = (field.metadata as? MetadataSource.Property)?.descriptor
if (descriptor != null) {
state.globalSerializationBindings.put(JvmSerializationBindings.FIELD_FOR_PROPERTY, descriptor, fieldType to fieldName)
}
@@ -17,7 +17,7 @@ class IrFieldBuilder : IrDeclarationBuilder() {
var isExternal: Boolean = false
var isStatic: Boolean = false
var isFakeOverride: Boolean = false
var metadata: MetadataSource.Property? = null
var metadata: MetadataSource? = null
fun updateFrom(from: IrField) {
super.updateFrom(from)
@@ -27,5 +27,5 @@ interface IrField :
var correspondingPropertySymbol: IrPropertySymbol?
override val metadata: MetadataSource.Property?
override val metadata: MetadataSource?
}
@@ -104,9 +104,9 @@ class IrFieldImpl(
}
}
override var metadataField: MetadataSource.Property? = null
override var metadataField: MetadataSource? = null
override var metadata: MetadataSource.Property?
override var metadata: MetadataSource?
get() = getCarrier().metadataField
set(v) {
if (metadata !== v) {
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
interface FieldCarrier : DeclarationCarrier<FieldCarrier> {
var initializerField: IrExpressionBody?
var correspondingPropertySymbolField: IrPropertySymbol?
var metadataField: MetadataSource.Property?
var metadataField: MetadataSource?
var overridenSymbolsField: List<IrFieldSymbol>
override fun clone(): FieldCarrier {
@@ -40,6 +40,6 @@ class FieldCarrierImpl(
override var annotationsField: List<IrConstructorCall>,
override var initializerField: IrExpressionBody?,
override var correspondingPropertySymbolField: IrPropertySymbol?,
override var metadataField: MetadataSource.Property?,
override var metadataField: MetadataSource?,
override var overridenSymbolsField: List<IrFieldSymbol>
): FieldCarrier