[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.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.getContainingDeclarationSymbol
|
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.copy
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.fir.declarations.builder.*
|
import org.jetbrains.kotlin.fir.declarations.builder.*
|
||||||
@@ -237,6 +238,8 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene
|
|||||||
type = kSerializerId.constructClassLikeType(arrayOf(typeParam.toConeType()), false)
|
type = kSerializerId.constructClassLikeType(arrayOf(typeParam.toConeType()), false)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
}.also {
|
||||||
|
it.containingClassForStaticMemberAttr = ConeClassLikeLookupTagImpl(owner.classId)
|
||||||
}.symbol
|
}.symbol
|
||||||
}
|
}
|
||||||
return result
|
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");
|
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
|
@Test
|
||||||
@TestMetadata("multiFieldValueClasses.kt")
|
@TestMetadata("multiFieldValueClasses.kt")
|
||||||
public void testMultiFieldValueClasses() throws Exception {
|
public void testMultiFieldValueClasses() throws Exception {
|
||||||
|
|||||||
+6
@@ -115,6 +115,12 @@ public class SerializationIrBoxTestGenerated extends AbstractSerializationIrBoxT
|
|||||||
runTest("plugins/kotlinx-serialization/testData/boxIr/metaSerializable.kt");
|
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
|
@Test
|
||||||
@TestMetadata("multiFieldValueClasses.kt")
|
@TestMetadata("multiFieldValueClasses.kt")
|
||||||
public void testMultiFieldValueClasses() throws Exception {
|
public void testMultiFieldValueClasses() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user