From 5bb035282f472265b14bd4e76c91fea6e320c46f Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 30 Sep 2016 16:49:00 +0300 Subject: [PATCH] Generate 'toString()': Permit for data classes #KT-14122 Fixed --- ChangeLog.md | 1 + .../generate/KotlinGenerateToStringAction.kt | 1 - .../generate/toString/common/dataClass.kt | 2 -- .../toString/multipeTemplates/dataClass.kt | 2 ++ .../multipeTemplates/dataClass.kt.after | 9 +++++++++ .../toString/singleTemplate/dataClass.kt | 2 ++ .../toString/singleTemplate/dataClass.kt.after | 6 ++++++ .../GenerateToStringActionTestGenerated.java | 18 ++++++++++++------ 8 files changed, 32 insertions(+), 9 deletions(-) delete mode 100644 idea/testData/codeInsight/generate/toString/common/dataClass.kt create mode 100644 idea/testData/codeInsight/generate/toString/multipeTemplates/dataClass.kt create mode 100644 idea/testData/codeInsight/generate/toString/multipeTemplates/dataClass.kt.after create mode 100644 idea/testData/codeInsight/generate/toString/singleTemplate/dataClass.kt create mode 100644 idea/testData/codeInsight/generate/toString/singleTemplate/dataClass.kt.after diff --git a/ChangeLog.md b/ChangeLog.md index 8bccdbbf004..a118f13f8f6 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -197,6 +197,7 @@ These artifacts include extensions for the types available in the latter JDKs, s - [`KT-14096`](https://youtrack.jetbrains.com/issue/KT-14096) Rename: When renaming Kotlin file outside of source root do not rename its namesake in a source root - [`KT-13928`](https://youtrack.jetbrains.com/issue/KT-13928) Move Inner Class to Upper Level: Fix replacement of outer class instances used in inner class constructor calls - [`KT-12556`](https://youtrack.jetbrains.com/issue/KT-12556) Allow using whitespaces and other symbols in "Generate -> Test Function" dialog +- [`KT-14122`](https://youtrack.jetbrains.com/issue/KT-14122) Generate 'toString()': Permit for data classes #### Intention actions, inspections and quickfixes diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateToStringAction.kt b/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateToStringAction.kt index 850a19c0f83..447c57d7b2c 100644 --- a/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateToStringAction.kt +++ b/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateToStringAction.kt @@ -126,7 +126,6 @@ class KotlinGenerateToStringAction : KotlinGenerateMemberActionBase(val n: Int) \ No newline at end of file diff --git a/idea/testData/codeInsight/generate/toString/multipeTemplates/dataClass.kt b/idea/testData/codeInsight/generate/toString/multipeTemplates/dataClass.kt new file mode 100644 index 00000000000..1efa5442810 --- /dev/null +++ b/idea/testData/codeInsight/generate/toString/multipeTemplates/dataClass.kt @@ -0,0 +1,2 @@ +// GENERATOR: MULTIPLE_TEMPLATES +data class A(val n: Int, val s: String?) \ No newline at end of file diff --git a/idea/testData/codeInsight/generate/toString/multipeTemplates/dataClass.kt.after b/idea/testData/codeInsight/generate/toString/multipeTemplates/dataClass.kt.after new file mode 100644 index 00000000000..0c91a98b32b --- /dev/null +++ b/idea/testData/codeInsight/generate/toString/multipeTemplates/dataClass.kt.after @@ -0,0 +1,9 @@ +// GENERATOR: MULTIPLE_TEMPLATES +data class A(val n: Int, val s: String?) { + override fun toString(): String { + return "A(" + + "n=$n," + + "s=$s" + + ")" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/generate/toString/singleTemplate/dataClass.kt b/idea/testData/codeInsight/generate/toString/singleTemplate/dataClass.kt new file mode 100644 index 00000000000..38df7d3dc2d --- /dev/null +++ b/idea/testData/codeInsight/generate/toString/singleTemplate/dataClass.kt @@ -0,0 +1,2 @@ +// GENERATOR: SINGLE_TEMPLATE +data class A(val n: Int, val s: String?) \ No newline at end of file diff --git a/idea/testData/codeInsight/generate/toString/singleTemplate/dataClass.kt.after b/idea/testData/codeInsight/generate/toString/singleTemplate/dataClass.kt.after new file mode 100644 index 00000000000..7ebd74dadbf --- /dev/null +++ b/idea/testData/codeInsight/generate/toString/singleTemplate/dataClass.kt.after @@ -0,0 +1,6 @@ +// GENERATOR: SINGLE_TEMPLATE +data class A(val n: Int, val s: String?) { + override fun toString(): String { + return "A(n=$n, s=$s)" + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateToStringActionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateToStringActionTestGenerated.java index 985aa82495c..d99e550a2bb 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateToStringActionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateToStringActionTestGenerated.java @@ -49,12 +49,6 @@ public class GenerateToStringActionTestGenerated extends AbstractGenerateToStrin doTest(fileName); } - @TestMetadata("dataClass.kt") - public void testDataClass() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/codeInsight/generate/toString/common/dataClass.kt"); - doTest(fileName); - } - @TestMetadata("interface.kt") public void testInterface() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/codeInsight/generate/toString/common/interface.kt"); @@ -88,6 +82,12 @@ public class GenerateToStringActionTestGenerated extends AbstractGenerateToStrin doTest(fileName); } + @TestMetadata("dataClass.kt") + public void testDataClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/codeInsight/generate/toString/multipeTemplates/dataClass.kt"); + doTest(fileName); + } + @TestMetadata("multipleVars.kt") public void testMultipleVars() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/codeInsight/generate/toString/multipeTemplates/multipleVars.kt"); @@ -139,6 +139,12 @@ public class GenerateToStringActionTestGenerated extends AbstractGenerateToStrin doTest(fileName); } + @TestMetadata("dataClass.kt") + public void testDataClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/codeInsight/generate/toString/singleTemplate/dataClass.kt"); + doTest(fileName); + } + @TestMetadata("explicitDefaultAccessors.kt") public void testExplicitDefaultAccessors() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/codeInsight/generate/toString/singleTemplate/explicitDefaultAccessors.kt");