From 71604851fe01bb790eb39ca78717d7e6b2babcf5 Mon Sep 17 00:00:00 2001 From: Mads Ager Date: Mon, 3 Jun 2019 10:55:41 +0200 Subject: [PATCH] JVM_IR: Allow delegated companion objects. This currently leads to a compilation error due to metadata generation. --- .../org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt | 2 +- .../testData/loadJava/compiledKotlin/classObject/Delegation.kt | 1 - 2 files changed, 1 insertion(+), 2 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 9e7daee7747..eb4dd328f94 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 @@ -227,7 +227,7 @@ open class ClassCodegen protected constructor( val descriptor = field.metadata?.descriptor if (descriptor != null) { - val codegen = if (JvmAbi.isPropertyWithBackingFieldInOuterClass(descriptor)) { + val codegen = if (field.origin != IrDeclarationOrigin.DELEGATE && JvmAbi.isPropertyWithBackingFieldInOuterClass(descriptor)) { companionObjectCodegen ?: error("Class with a property moved from the companion must have a companion:\n${irClass.dump()}") } else this codegen.visitor.serializationBindings.put(JvmSerializationBindings.FIELD_FOR_PROPERTY, descriptor, fieldType to fieldName) diff --git a/compiler/testData/loadJava/compiledKotlin/classObject/Delegation.kt b/compiler/testData/loadJava/compiledKotlin/classObject/Delegation.kt index bbf767d71ca..7602c61fcb8 100644 --- a/compiler/testData/loadJava/compiledKotlin/classObject/Delegation.kt +++ b/compiler/testData/loadJava/compiledKotlin/classObject/Delegation.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR package test interface T {