From 5f06c9e86cb7e8195ca467552ac310e76bf7b419 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 19 Jul 2019 12:14:19 +0200 Subject: [PATCH] JVM IR: do not generate generic signature for $delegate field See ee7bbbf530 --- .../org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt | 4 +++- .../genericSignature/genericBackingFieldSignature.kt | 1 - .../writeSignature/backingFieldForGenericDelegated.kt | 4 +--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt index 64d18895753..a9086a6099b 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt @@ -211,7 +211,9 @@ open class ClassCodegen protected constructor( if (field.origin == IrDeclarationOrigin.FAKE_OVERRIDE) return val fieldType = typeMapper.mapType(field) - val fieldSignature = typeMapper.mapFieldSignature(field) + val fieldSignature = + if (field.origin == IrDeclarationOrigin.DELEGATE) null + else typeMapper.mapFieldSignature(field) val fieldName = field.name.asString() // The ConstantValue attribute makes the initializer part of the ABI, which is why since 1.4 // it is no longer set unless the property is explicitly `const`. diff --git a/compiler/testData/codegen/box/reflection/genericSignature/genericBackingFieldSignature.kt b/compiler/testData/codegen/box/reflection/genericSignature/genericBackingFieldSignature.kt index b1c2dc598d6..97b54f68020 100644 --- a/compiler/testData/codegen/box/reflection/genericSignature/genericBackingFieldSignature.kt +++ b/compiler/testData/codegen/box/reflection/genericSignature/genericBackingFieldSignature.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // WITH_REFLECT diff --git a/compiler/testData/writeSignature/backingFieldForGenericDelegated.kt b/compiler/testData/writeSignature/backingFieldForGenericDelegated.kt index c91432728c0..ff2eee93216 100644 --- a/compiler/testData/writeSignature/backingFieldForGenericDelegated.kt +++ b/compiler/testData/writeSignature/backingFieldForGenericDelegated.kt @@ -1,5 +1,3 @@ -// IGNORE_BACKEND: JVM_IR - import kotlin.reflect.KProperty import kotlin.reflect.KProperty1 @@ -17,4 +15,4 @@ class Test { // field: Test::additionalText$delegate // jvm signature: LDVal; -// generic signature: null \ No newline at end of file +// generic signature: null