[Serialization] Add wasm target platform to serialization plugin
This commit is contained in:
committed by
Space Team
parent
e990c8efd2
commit
8cb1fca299
+2
-1
@@ -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
|
||||
|
||||
+2
-1
@@ -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
|
||||
|
||||
+2
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user