IR: make IrMetadataSourceOwner.metadata mutable
To avoid casting to specific Ir*Impl elements at call sites. Also inherit from IrMetadataSourceOwner only where it's needed: class, file, function, property. Previously this field was always null and took some space for things like value parameters, type parameters, etc.
This commit is contained in:
+3
-4
@@ -16,13 +16,12 @@ import org.jetbrains.kotlin.backend.jvm.ir.erasedUpperBound
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.IrStatement
|
||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||
import org.jetbrains.kotlin.ir.builders.*
|
||||
import org.jetbrains.kotlin.ir.builders.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.IrCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.expressions.IrFunctionReference
|
||||
@@ -122,7 +121,7 @@ class ParcelableIrTransformer(private val context: IrPluginContext, private val
|
||||
irExprBody(irInt(flags))
|
||||
}
|
||||
|
||||
(this as IrFunctionImpl).metadata = MetadataSource.Function(
|
||||
metadata = MetadataSource.Function(
|
||||
declaration.descriptor.findFunction(ParcelableSyntheticComponent.ComponentKind.DESCRIBE_CONTENTS)!!
|
||||
)
|
||||
}
|
||||
@@ -177,7 +176,7 @@ class ParcelableIrTransformer(private val context: IrPluginContext, private val
|
||||
}
|
||||
}
|
||||
|
||||
(this as IrFunctionImpl).metadata = MetadataSource.Function(
|
||||
metadata = MetadataSource.Function(
|
||||
declaration.descriptor.findFunction(ParcelableSyntheticComponent.ComponentKind.WRITE_TO_PARCEL)!!
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user