From 850d72f13f7cd285160ede0006a85f9d5233d106 Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Mon, 24 Sep 2018 14:20:19 +0300 Subject: [PATCH] Fix accessor generation for inline class members TODO 'generateMethodCallTo' is a bloody mess that deserves rewriting. --- .../kotlin/codegen/MemberCodegen.java | 11 +++++--- ...ivateInlineClassMethodFromInlineLambda.kt} | 0 ...ivateInlineClassMethodFromInlineLambda2.kt | 10 +++++++ ...ccessPrivateInlineClassMethodFromLambda.kt | 10 +++++++ ...cessPrivateInlineClassMethodFromLambda2.kt | 10 +++++++ .../captureInlineClassInstanceInLambda2.kt | 10 +++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 26 ++++++++++++++++--- .../LightAnalysisModeTestGenerated.java | 26 ++++++++++++++++--- .../ir/IrBlackBoxCodegenTestGenerated.java | 26 ++++++++++++++++--- .../IrJsCodegenBoxTestGenerated.java | 26 ++++++++++++++++--- .../semantics/JsCodegenBoxTestGenerated.java | 26 ++++++++++++++++--- 11 files changed, 163 insertions(+), 18 deletions(-) rename compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/{accessPrivateInlineClassMethodFromInlineLambdaInInlineClass.kt => accessPrivateInlineClassMethodFromInlineLambda.kt} (100%) create mode 100644 compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/accessPrivateInlineClassMethodFromInlineLambda2.kt create mode 100644 compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/accessPrivateInlineClassMethodFromLambda.kt create mode 100644 compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/accessPrivateInlineClassMethodFromLambda2.kt create mode 100644 compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/captureInlineClassInstanceInLambda2.kt diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java index d05f0843a21..21a0af66b60 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java @@ -32,6 +32,7 @@ import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.psi.synthetics.SyntheticClassOrObjectDescriptor; import org.jetbrains.kotlin.resolve.BindingContext; import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils; +import org.jetbrains.kotlin.resolve.InlineClassesUtilsKt; import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall; import org.jetbrains.kotlin.resolve.constants.ConstantValue; import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt; @@ -868,11 +869,15 @@ public abstract class MemberCodegen