diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt index 04a8bd636cc..a4b9f97fe60 100644 --- a/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt @@ -25,6 +25,7 @@ import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.platform.isJs +import org.jetbrains.kotlin.platform.isWasm import org.jetbrains.kotlin.platform.konan.isNative import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationPluginContext import org.jetbrains.kotlinx.serialization.compiler.fir.SerializationPluginKey @@ -186,7 +187,7 @@ fun IrClass.findSerializableSyntheticConstructor(): IrConstructorSymbol? { } internal fun IrClass.needSerializerFactory(compilerContext: SerializationPluginContext): Boolean { - if (!(compilerContext.platform?.isNative() == true || compilerContext.platform.isJs())) return false + if (!(compilerContext.platform?.isNative() == true || compilerContext.platform.isJs() || compilerContext.platform.isWasm())) return false val serializableClass = getSerializableClassDescriptorByCompanion(this) ?: return false if (serializableClass.isSerializableObject) return true if (serializableClass.isSerializableEnum()) return true diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt index 5258390a2c2..b3f9c4c4fc7 100644 --- a/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.platform.isJs +import org.jetbrains.kotlin.platform.isWasm import org.jetbrains.kotlin.platform.konan.isNative import org.jetbrains.kotlin.psi.KtAnnotationEntry import org.jetbrains.kotlin.resolve.descriptorUtil.annotationClass @@ -267,7 +268,7 @@ fun getSerializableClassDescriptorByCompanion(thisDescriptor: ClassDescriptor): } fun ClassDescriptor.needSerializerFactory(): Boolean { - if (!(this.platform?.isNative() == true || this.platform.isJs())) return false + if (!(this.platform?.isNative() == true || this.platform.isJs() || this.platform.isWasm())) return false val serializableClass = getSerializableClassDescriptorByCompanion(this) ?: return false if (serializableClass.isSerializableObject) return true if (serializableClass.isSerializableEnum()) return true diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt index 8afc3d91dc1..6c4ffb74226 100644 --- a/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt @@ -37,6 +37,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.SpecialNames import org.jetbrains.kotlin.platform.isJs +import org.jetbrains.kotlin.platform.isWasm import org.jetbrains.kotlin.platform.konan.isNative import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames.SERIALIZER_FACTORY_INTERFACE_NAME @@ -311,7 +312,7 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene context(FirSession) private val FirClassSymbol<*>.companionNeedsSerializerFactory: Boolean get() { - if (!(moduleData.platform.isNative() || moduleData.platform.isJs())) return false + if (!(moduleData.platform.isNative() || moduleData.platform.isJs() || moduleData.platform.isWasm())) return false if (isSerializableObject) return true if (isSerializableEnum) return true if (isAbstractOrSealedSerializableClass) return true