diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertToStringTemplateIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertToStringTemplateIntention.kt index a2702306308..d812d66651c 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertToStringTemplateIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertToStringTemplateIntention.kt @@ -120,6 +120,9 @@ open class ConvertToStringTemplateIntention : SelfTargetingOffsetIndependentInte is KtNameReferenceExpression -> return "$" + (if (forceBraces) "{$expressionText}" else expressionText) + + is KtThisExpression -> + return "$" + (if (forceBraces || expression.labelQualifier != null) "{$expressionText}" else expressionText) } return "\${$expressionText}" diff --git a/idea/testData/intentions/convertToStringTemplate/this.kt b/idea/testData/intentions/convertToStringTemplate/this.kt new file mode 100644 index 00000000000..08ba12323c6 --- /dev/null +++ b/idea/testData/intentions/convertToStringTemplate/this.kt @@ -0,0 +1,3 @@ +class A { + val s = "" + this +} \ No newline at end of file diff --git a/idea/testData/intentions/convertToStringTemplate/this.kt.after b/idea/testData/intentions/convertToStringTemplate/this.kt.after new file mode 100644 index 00000000000..f733746443b --- /dev/null +++ b/idea/testData/intentions/convertToStringTemplate/this.kt.after @@ -0,0 +1,3 @@ +class A { + val s = "$this" +} \ No newline at end of file diff --git a/idea/testData/intentions/convertToStringTemplate/this2.kt b/idea/testData/intentions/convertToStringTemplate/this2.kt new file mode 100644 index 00000000000..bac14f74f70 --- /dev/null +++ b/idea/testData/intentions/convertToStringTemplate/this2.kt @@ -0,0 +1,4 @@ +class A { + val i = 1 + val s = "" + this.i +} \ No newline at end of file diff --git a/idea/testData/intentions/convertToStringTemplate/this2.kt.after b/idea/testData/intentions/convertToStringTemplate/this2.kt.after new file mode 100644 index 00000000000..e31f349f3be --- /dev/null +++ b/idea/testData/intentions/convertToStringTemplate/this2.kt.after @@ -0,0 +1,4 @@ +class A { + val i = 1 + val s = "${this.i}" +} \ No newline at end of file diff --git a/idea/testData/intentions/convertToStringTemplate/this3.kt b/idea/testData/intentions/convertToStringTemplate/this3.kt new file mode 100644 index 00000000000..59c2bcd9a9e --- /dev/null +++ b/idea/testData/intentions/convertToStringTemplate/this3.kt @@ -0,0 +1,5 @@ +class A { + inner class B { + val s = "" + this@A + } +} diff --git a/idea/testData/intentions/convertToStringTemplate/this3.kt.after b/idea/testData/intentions/convertToStringTemplate/this3.kt.after new file mode 100644 index 00000000000..d2e0ecde303 --- /dev/null +++ b/idea/testData/intentions/convertToStringTemplate/this3.kt.after @@ -0,0 +1,5 @@ +class A { + inner class B { + val s = "${this@A}" + } +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 2004c38598d..8ee640a5536 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -7450,6 +7450,21 @@ public class IntentionTestGenerated extends AbstractIntentionTest { runTest("idea/testData/intentions/convertToStringTemplate/templatePlusStringLiteral.kt"); } + @TestMetadata("this.kt") + public void testThis() throws Exception { + runTest("idea/testData/intentions/convertToStringTemplate/this.kt"); + } + + @TestMetadata("this2.kt") + public void testThis2() throws Exception { + runTest("idea/testData/intentions/convertToStringTemplate/this2.kt"); + } + + @TestMetadata("this3.kt") + public void testThis3() throws Exception { + runTest("idea/testData/intentions/convertToStringTemplate/this3.kt"); + } + @TestMetadata("tricky.kt") public void testTricky() throws Exception { runTest("idea/testData/intentions/convertToStringTemplate/tricky.kt");