From e25a09f2f9f0fa85bc115c50902f379026cbb893 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven=20Sch=C3=A4fer?= Date: Wed, 2 Oct 2019 11:13:54 +0200 Subject: [PATCH] JVM IR: Fix local delegated properties with inline class types --- .../lower/inlineclasses/MemoizedInlineClassReplacements.kt | 5 ++++- compiler/testData/codegen/box/inlineClasses/kt25750.kt | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/inlineclasses/MemoizedInlineClassReplacements.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/inlineclasses/MemoizedInlineClassReplacements.kt index 5515a414d23..ee6de377b2c 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/inlineclasses/MemoizedInlineClassReplacements.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/inlineclasses/MemoizedInlineClassReplacements.kt @@ -47,7 +47,10 @@ class MemoizedInlineClassReplacements { val getReplacementFunction: (IrFunction) -> IrReplacementFunction? = storageManager.createMemoizedFunctionWithNullableValues { when { - !it.hasMangledParameters || it.isSyntheticInlineClassMember || it.origin == IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA -> null + !it.hasMangledParameters || + it.isSyntheticInlineClassMember || + it.origin == IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA || + it.origin == IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR -> null it.hasMethodReplacement -> createMethodReplacement(it) it.hasStaticReplacement -> createStaticReplacement(it) else -> null diff --git a/compiler/testData/codegen/box/inlineClasses/kt25750.kt b/compiler/testData/codegen/box/inlineClasses/kt25750.kt index 01bb5c4e37f..bdb0cd98ffe 100644 --- a/compiler/testData/codegen/box/inlineClasses/kt25750.kt +++ b/compiler/testData/codegen/box/inlineClasses/kt25750.kt @@ -1,5 +1,4 @@ // !LANGUAGE: +InlineClasses -// IGNORE_BACKEND: JVM_IR // WITH_RUNTIME import kotlin.reflect.KMutableProperty0