[FIR][Serialization] Set containingClassForStaticMemberAttr in generateConstructors
This commit is contained in:
committed by
Space Team
parent
8936220876
commit
31e2f0ba95
+3
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.getContainingDeclarationSymbol
|
||||
import org.jetbrains.kotlin.fir.containingClassForStaticMemberAttr
|
||||
import org.jetbrains.kotlin.fir.copy
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.*
|
||||
@@ -237,6 +238,8 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene
|
||||
type = kSerializerId.constructClassLikeType(arrayOf(typeParam.toConeType()), false)
|
||||
)
|
||||
}
|
||||
}.also {
|
||||
it.containingClassForStaticMemberAttr = ConeClassLikeLookupTagImpl(owner.classId)
|
||||
}.symbol
|
||||
}
|
||||
return result
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// WITH_STDLIB
|
||||
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
// FILE: common.kt
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
class Bar<T>(val t: T)
|
||||
|
||||
@Serializable
|
||||
class Wrapper(val b: Bar<String>)
|
||||
|
||||
// MODULE: jvm()()(common)
|
||||
// TARGET_PLATFORM: JVM
|
||||
// FILE: main.kt
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
import kotlinx.serialization.descriptors.*
|
||||
|
||||
fun box(): String {
|
||||
return if (Wrapper.serializer().descriptor.elementDescriptors.first().toString() == "Bar(t: kotlin.String)") "OK" else "FAIL"
|
||||
}
|
||||
+6
@@ -117,6 +117,12 @@ public class SerializationFirBlackBoxTestGenerated extends AbstractSerialization
|
||||
runTest("plugins/kotlinx-serialization/testData/boxIr/metaSerializable.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("mpp.kt")
|
||||
public void testMpp() throws Exception {
|
||||
runTest("plugins/kotlinx-serialization/testData/boxIr/mpp.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("multiFieldValueClasses.kt")
|
||||
public void testMultiFieldValueClasses() throws Exception {
|
||||
|
||||
+6
@@ -115,6 +115,12 @@ public class SerializationIrBoxTestGenerated extends AbstractSerializationIrBoxT
|
||||
runTest("plugins/kotlinx-serialization/testData/boxIr/metaSerializable.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("mpp.kt")
|
||||
public void testMpp() throws Exception {
|
||||
runTest("plugins/kotlinx-serialization/testData/boxIr/mpp.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("multiFieldValueClasses.kt")
|
||||
public void testMultiFieldValueClasses() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user