From 504d79577dfec8376e1fe9f3a39082c751fa578a Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Tue, 28 Jan 2020 15:20:31 +0100 Subject: [PATCH] JVM_IR. Align outer parameter name generation between backends --- .../src/org/jetbrains/kotlin/codegen/FunctionCodegen.java | 2 ++ .../codegen/asmLike/receiverMangling/inlineClassCapture.txt | 4 ++-- .../testData/codegen/asmLike/receiverMangling/innerClass.txt | 2 +- .../codegen/asmLike/typeAnnotations/innerClassConstructor.txt | 2 +- .../codegen/asmLike/typeAnnotations/notYetSupported.txt | 2 +- .../codegen/asmLike/typeAnnotations/syntheticAccessors.txt | 2 +- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java index 06575263493..4eaa398455e 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java @@ -805,6 +805,8 @@ public class FunctionCodegen { else if (kind == JvmMethodParameterKind.RECEIVER) { parameterName = AsmUtil.getNameForReceiverParameter( functionDescriptor, typeMapper.getBindingContext(), state.getLanguageVersionSettings()); + } else if (kind == JvmMethodParameterKind.OUTER) { + parameterName = CAPTURED_THIS_FIELD; //should be 'this$X' depending on inner class nesting } else { String lowercaseKind = kind.name().toLowerCase(); diff --git a/compiler/testData/codegen/asmLike/receiverMangling/inlineClassCapture.txt b/compiler/testData/codegen/asmLike/receiverMangling/inlineClassCapture.txt index 4fbcd1efe4d..c4c3d14c278 100644 --- a/compiler/testData/codegen/asmLike/receiverMangling/inlineClassCapture.txt +++ b/compiler/testData/codegen/asmLike/receiverMangling/inlineClassCapture.txt @@ -1,10 +1,10 @@ public final class Foo$Bar : java/lang/Object { final Foo this$0 - public void (Foo $outer) { + public void (Foo this$0) { Local variables: 0 this: LFoo$Bar; - 1 $outer: LFoo; + 1 this$0: LFoo; } public final void bar() { diff --git a/compiler/testData/codegen/asmLike/receiverMangling/innerClass.txt b/compiler/testData/codegen/asmLike/receiverMangling/innerClass.txt index 7bb5212b24a..9d1a34b62b5 100644 --- a/compiler/testData/codegen/asmLike/receiverMangling/innerClass.txt +++ b/compiler/testData/codegen/asmLike/receiverMangling/innerClass.txt @@ -1,7 +1,7 @@ public final class Foo$Bar : java/lang/Object { final Foo this$0 - public void (Foo $outer) + public void (Foo this$0) } public final class Foo : java/lang/Object { diff --git a/compiler/testData/codegen/asmLike/typeAnnotations/innerClassConstructor.txt b/compiler/testData/codegen/asmLike/typeAnnotations/innerClassConstructor.txt index 4681f7630c6..761ca9f8578 100644 --- a/compiler/testData/codegen/asmLike/typeAnnotations/innerClassConstructor.txt +++ b/compiler/testData/codegen/asmLike/typeAnnotations/innerClassConstructor.txt @@ -1,7 +1,7 @@ public final class foo/Kotlin$Inner : java/lang/Object { final foo.Kotlin this$0 - public void (foo.Kotlin $outer, java.lang.String s) + public void (foo.Kotlin this$0, java.lang.String s) @Lfoo/TypeAnn;([]) : METHOD_FORMAL_PARAMETER 0, null } diff --git a/compiler/testData/codegen/asmLike/typeAnnotations/notYetSupported.txt b/compiler/testData/codegen/asmLike/typeAnnotations/notYetSupported.txt index bc5d52cbf7a..9aaf0a800a4 100644 --- a/compiler/testData/codegen/asmLike/typeAnnotations/notYetSupported.txt +++ b/compiler/testData/codegen/asmLike/typeAnnotations/notYetSupported.txt @@ -47,7 +47,7 @@ public final class foo/Kotlin : java/lang/Object { public final class foo/Outer$Inner : java/lang/Object { final foo.Outer this$0 - public void (foo.Outer $outer) + public void (foo.Outer this$0) } public final class foo/Outer : java/lang/Object { diff --git a/compiler/testData/codegen/asmLike/typeAnnotations/syntheticAccessors.txt b/compiler/testData/codegen/asmLike/typeAnnotations/syntheticAccessors.txt index 4b7d92b7593..dba3dab6368 100644 --- a/compiler/testData/codegen/asmLike/typeAnnotations/syntheticAccessors.txt +++ b/compiler/testData/codegen/asmLike/typeAnnotations/syntheticAccessors.txt @@ -1,7 +1,7 @@ public final class foo/Kotlin$A : java/lang/Object { final foo.Kotlin this$0 - public void (foo.Kotlin $outer) + public void (foo.Kotlin this$0) public final void fooArray2() }