diff --git a/libraries/kotlinx-metadata/jvm/ChangeLog.md b/libraries/kotlinx-metadata/jvm/ChangeLog.md index fff74cacef5..d41bd219683 100644 --- a/libraries/kotlinx-metadata/jvm/ChangeLog.md +++ b/libraries/kotlinx-metadata/jvm/ChangeLog.md @@ -3,6 +3,7 @@ ## Next - Add `JvmPropertyExtensionVisitor.visitSyntheticMethodForDelegate` for optimized delegated properties (KT-39055). +- [`KT-48965`](https://youtrack.jetbrains.com/issue/KT-48965) Make the type of `KmValueParameter.type` non-null `KmType` ## 0.3.0 diff --git a/libraries/kotlinx-metadata/src/kotlinx/metadata/nodes.kt b/libraries/kotlinx-metadata/src/kotlinx/metadata/nodes.kt index 2afbb83047e..df2a960ae0f 100644 --- a/libraries/kotlinx-metadata/src/kotlinx/metadata/nodes.kt +++ b/libraries/kotlinx-metadata/src/kotlinx/metadata/nodes.kt @@ -586,7 +586,7 @@ class KmValueParameter( /** * Type of the value parameter, if this is **not** a `vararg` parameter. */ - var type: KmType? = null + lateinit var type: KmType /** * Type of the value parameter, if this is a `vararg` parameter. @@ -611,7 +611,7 @@ class KmValueParameter( * @param visitor the visitor which will visit data in this value parameter */ fun accept(visitor: KmValueParameterVisitor) { - type?.let { visitor.visitType(it.flags)?.let(it::accept) } + visitor.visitType(type.flags)?.let(type::accept) varargElementType?.let { visitor.visitVarargElementType(it.flags)?.let(it::accept) } extensions.forEach { visitor.visitExtensions(it.type)?.let(it::accept) } visitor.visitEnd() diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirDeserializers.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirDeserializers.kt index 46674fbd448..b00c76edec1 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirDeserializers.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirDeserializers.kt @@ -196,7 +196,7 @@ object CirDeserializers { CirValueParameter.createInterned( annotations = annotations(source.flags, typeResolver, source::annotations), name = CirName.create(source.name), - returnType = type(source.type!!, typeResolver), + returnType = type(source.type, typeResolver), varargElementType = source.varargElementType?.let { type(it, typeResolver) }, declaresDefaultValue = Flag.ValueParameter.DECLARES_DEFAULT_VALUE(source.flags), isCrossinline = Flag.ValueParameter.IS_CROSSINLINE(source.flags),