Add serializers for primitive arrays to default types list

This commit is contained in:
Leonid Startsev
2019-03-27 13:18:42 +03:00
parent cfceeb1e8c
commit 80ddac64e0
2 changed files with 16 additions and 2 deletions
@@ -70,7 +70,6 @@ fun AbstractSerialGenerator.getSerialTypeInfo(property: SerializableProperty): S
) )
KotlinBuiltIns.isString(T) -> SerialTypeInfo(property, "String") KotlinBuiltIns.isString(T) -> SerialTypeInfo(property, "String")
KotlinBuiltIns.isUnit(T) -> SerialTypeInfo(property, "Unit", unit = true) KotlinBuiltIns.isUnit(T) -> SerialTypeInfo(property, "Unit", unit = true)
KotlinBuiltIns.isPrimitiveArray(T) -> TODO("primitive arrays are not supported yet")
KotlinBuiltIns.isNonPrimitiveArray(T.toClassDescriptor!!) -> { KotlinBuiltIns.isNonPrimitiveArray(T.toClassDescriptor!!) -> {
val serializer = property.serializableWith?.toClassDescriptor ?: property.module.findClassAcrossModuleDependencies( val serializer = property.serializableWith?.toClassDescriptor ?: property.module.findClassAcrossModuleDependencies(
referenceArraySerializerId referenceArraySerializerId
@@ -165,6 +164,14 @@ fun findStandardKotlinTypeSerializer(module: ModuleDescriptor, kType: KotlinType
"kotlin.collections.Map", "kotlin.collections.LinkedHashMap", "kotlin.collections.MutableMap" -> "LinkedHashMapSerializer" "kotlin.collections.Map", "kotlin.collections.LinkedHashMap", "kotlin.collections.MutableMap" -> "LinkedHashMapSerializer"
"kotlin.collections.HashMap" -> "HashMapSerializer" "kotlin.collections.HashMap" -> "HashMapSerializer"
"kotlin.collections.Map.Entry" -> "MapEntrySerializer" "kotlin.collections.Map.Entry" -> "MapEntrySerializer"
"kotlin.ByteArray" -> "ByteArraySerializer"
"kotlin.ShortArray" -> "ShortArraySerializer"
"kotlin.IntArray" -> "IntArraySerializer"
"kotlin.LongArray" -> "LongArraySerializer"
"kotlin.CharArray" -> "CharArraySerializer"
"kotlin.FloatArray" -> "FloatArraySerializer"
"kotlin.DoubleArray" -> "DoubleArraySerializer"
"kotlin.BooleanArray" -> "BooleanArraySerializer"
"java.lang.Boolean" -> "BooleanSerializer" "java.lang.Boolean" -> "BooleanSerializer"
"java.lang.Byte" -> "ByteSerializer" "java.lang.Byte" -> "ByteSerializer"
"java.lang.Short" -> "ShortSerializer" "java.lang.Short" -> "ShortSerializer"
@@ -360,7 +360,14 @@ fun AbstractSerialGenerator.getSerialTypeInfo(property: SerializableProperty, ty
// reference elements // reference elements
serializer = property.module.findClassAcrossModuleDependencies(referenceArraySerializerId) serializer = property.module.findClassAcrossModuleDependencies(referenceArraySerializerId)
} }
else -> TODO("primitive arrays are not supported yet") else -> {
serializer = findTypeSerializerOrContext(
property.module,
property.type,
property.descriptor.annotations,
property.descriptor.findPsi()
)
}
// primitive elements are not supported yet // primitive elements are not supported yet
} }
} }