K2: fix exception in deserializer for external setter #KT-53031 Fixed
This commit is contained in:
+1
-4
@@ -287,10 +287,7 @@ class FirElementSerializer private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val nonSourceAnnotations = setter.nonSourceAnnotations(session, property)
|
val nonSourceAnnotations = setter.nonSourceAnnotations(session, property)
|
||||||
if (setter !is FirDefaultPropertyAccessor ||
|
if (Flags.IS_NOT_DEFAULT.get(accessorFlags)) {
|
||||||
nonSourceAnnotations.isNotEmpty() ||
|
|
||||||
setter.visibility != property.visibility
|
|
||||||
) {
|
|
||||||
val setterLocal = local.createChildSerializer(setter)
|
val setterLocal = local.createChildSerializer(setter)
|
||||||
for (valueParameterDescriptor in setter.valueParameters) {
|
for (valueParameterDescriptor in setter.valueParameters) {
|
||||||
val annotations = nonSourceAnnotations.filter { it.useSiteTarget == AnnotationUseSiteTarget.SETTER_PARAMETER }
|
val annotations = nonSourceAnnotations.filter { it.useSiteTarget == AnnotationUseSiteTarget.SETTER_PARAMETER }
|
||||||
|
|||||||
+6
@@ -17787,6 +17787,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
|
|||||||
runTest("compiler/testData/codegen/box/fir/ExtensionAlias.kt");
|
runTest("compiler/testData/codegen/box/fir/ExtensionAlias.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("externalInDependency.kt")
|
||||||
|
public void testExternalInDependency() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/fir/externalInDependency.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("FakeOverrideBuilder.kt")
|
@TestMetadata("FakeOverrideBuilder.kt")
|
||||||
public void testFakeOverrideBuilder() throws Exception {
|
public void testFakeOverrideBuilder() throws Exception {
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
// TARGET_BACKEND: JVM_IR
|
||||||
|
|
||||||
|
// MODULE: m1
|
||||||
|
// FILE: f1.kt
|
||||||
|
|
||||||
|
object O {
|
||||||
|
var prop: String
|
||||||
|
external get
|
||||||
|
external set
|
||||||
|
}
|
||||||
|
|
||||||
|
// MODULE: m2(m1)
|
||||||
|
// FILE: f2.kt
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
O.hashCode() // Necessary to deserialize O
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
+6
@@ -17787,6 +17787,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/fir/ExtensionAlias.kt");
|
runTest("compiler/testData/codegen/box/fir/ExtensionAlias.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("externalInDependency.kt")
|
||||||
|
public void testExternalInDependency() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/fir/externalInDependency.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("FakeOverrideBuilder.kt")
|
@TestMetadata("FakeOverrideBuilder.kt")
|
||||||
public void testFakeOverrideBuilder() throws Exception {
|
public void testFakeOverrideBuilder() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user