From ed5c2b0565b479e61bd434918894538902901db0 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Tue, 6 Oct 2020 09:05:59 +0200 Subject: [PATCH] Add tests for data class runtime string concatenation #KT-35176 --- .../codegen/ir/FirBytecodeTextTestGenerated.java | 10 ++++++++++ .../stringOperations/concatDynamicDataClass.kt | 7 +++++++ .../stringOperations/concatDynamicIndyDataClass.kt | 6 ++++++ .../kotlin/codegen/BytecodeTextTestGenerated.java | 10 ++++++++++ .../kotlin/codegen/ir/IrBytecodeTextTestGenerated.java | 10 ++++++++++ 5 files changed, 43 insertions(+) create mode 100644 compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicDataClass.kt create mode 100644 compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndyDataClass.kt diff --git a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBytecodeTextTestGenerated.java b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBytecodeTextTestGenerated.java index 9be9c38a36a..cccf477b352 100644 --- a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBytecodeTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBytecodeTextTestGenerated.java @@ -4506,6 +4506,11 @@ public class FirBytecodeTextTestGenerated extends AbstractFirBytecodeTextTest { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicConstants.kt"); } + @TestMetadata("concatDynamicDataClass.kt") + public void testConcatDynamicDataClass() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicDataClass.kt"); + } + @TestMetadata("concatDynamicIndy.kt") public void testConcatDynamicIndy() throws Exception { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndy.kt"); @@ -4516,6 +4521,11 @@ public class FirBytecodeTextTestGenerated extends AbstractFirBytecodeTextTest { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndy201.kt"); } + @TestMetadata("concatDynamicIndyDataClass.kt") + public void testConcatDynamicIndyDataClass() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndyDataClass.kt"); + } + @TestMetadata("concatNotDynamic.kt") public void testConcatNotDynamic() throws Exception { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatNotDynamic.kt"); diff --git a/compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicDataClass.kt b/compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicDataClass.kt new file mode 100644 index 00000000000..edf0c63045a --- /dev/null +++ b/compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicDataClass.kt @@ -0,0 +1,7 @@ +// KOTLIN_CONFIGURATION_FLAGS: STRING_CONCAT=indy-with-constants +// JVM_TARGET: 9 +data class A(val i: Int, val b: Byte, val c: Char, val s: Short, val f: Float, val d: Double, val bo: Boolean, val l: Long) + +// 1 INVOKEDYNAMIC makeConcatWithConstants +// 1 INVOKEDYNAMIC makeConcatWithConstants\(IBCSFDZJ\)Ljava/lang/String; +// 1 "A\(i=\\u0001, b=\\u0001, c=\\u0001, s=\\u0001, f=\\u0001, d=\\u0001, bo=\\u0001, l=\\u0001\)" \ No newline at end of file diff --git a/compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndyDataClass.kt b/compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndyDataClass.kt new file mode 100644 index 00000000000..b80b70efb92 --- /dev/null +++ b/compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndyDataClass.kt @@ -0,0 +1,6 @@ +// KOTLIN_CONFIGURATION_FLAGS: STRING_CONCAT=indy +// JVM_TARGET: 9 +data class A(val i: Int, val b: Byte, val c: Char, val s: Short, val f: Float, val d: Double, val bo: Boolean, val l: Long) + +// 1 INVOKEDYNAMIC makeConcat +// 1 INVOKEDYNAMIC makeConcat\(Ljava/lang/String;ILjava/lang/String;BLjava/lang/String;CLjava/lang/String;SLjava/lang/String;FLjava/lang/String;DLjava/lang/String;ZLjava/lang/String;JLjava/lang/String;\)Ljava/lang/String; diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java index 37ec2ef2a38..19f1f272e6a 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java @@ -4538,6 +4538,11 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicConstants.kt"); } + @TestMetadata("concatDynamicDataClass.kt") + public void testConcatDynamicDataClass() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicDataClass.kt"); + } + @TestMetadata("concatDynamicIndy.kt") public void testConcatDynamicIndy() throws Exception { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndy.kt"); @@ -4548,6 +4553,11 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndy201.kt"); } + @TestMetadata("concatDynamicIndyDataClass.kt") + public void testConcatDynamicIndyDataClass() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndyDataClass.kt"); + } + @TestMetadata("concatNotDynamic.kt") public void testConcatNotDynamic() throws Exception { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatNotDynamic.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java index ae776490f81..f1e985630ab 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java @@ -4506,6 +4506,11 @@ public class IrBytecodeTextTestGenerated extends AbstractIrBytecodeTextTest { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicConstants.kt"); } + @TestMetadata("concatDynamicDataClass.kt") + public void testConcatDynamicDataClass() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicDataClass.kt"); + } + @TestMetadata("concatDynamicIndy.kt") public void testConcatDynamicIndy() throws Exception { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndy.kt"); @@ -4516,6 +4521,11 @@ public class IrBytecodeTextTestGenerated extends AbstractIrBytecodeTextTest { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndy201.kt"); } + @TestMetadata("concatDynamicIndyDataClass.kt") + public void testConcatDynamicIndyDataClass() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatDynamicIndyDataClass.kt"); + } + @TestMetadata("concatNotDynamic.kt") public void testConcatNotDynamic() throws Exception { runTest("compiler/testData/codegen/bytecodeText/stringOperations/concatNotDynamic.kt");