Skip to content

Commit f1b225f

Browse files
committed
Fix embedded trimIndent call expressions.
1 parent d4772ab commit f1b225f

File tree

5 files changed

+88
-5
lines changed

5 files changed

+88
-5
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
kotlin.code.style=official
22

3-
VERSION_NAME=1.8.20-1.0.0
3+
VERSION_NAME=1.8.20-1.1.0
44

55
GROUP=com.bennyhuo.kotlin
66

trimindent-compiler/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ dependencies {
1717

1818
testImplementation(kotlin("test-junit"))
1919
testImplementation("org.jetbrains.kotlin:kotlin-compiler-embeddable")
20-
testImplementation("com.bennyhuo.kotlin:kotlin-compile-testing-extensions:1.8.0.0")
20+
testImplementation("com.bennyhuo.kotlin:kotlin-compile-testing-extensions:1.8.20-1.2.0")
2121
}
2222

2323
val compileKotlin: KotlinCompile by tasks
@@ -27,4 +27,4 @@ compileKotlin.kotlinOptions.jvmTarget = "1.8"
2727
buildConfig {
2828
packageName("$group.trimindent")
2929
buildConfigField("String", "KOTLIN_PLUGIN_ID", "\"${project.property("KOTLIN_PLUGIN_ID")}\"")
30-
}
30+
}

trimindent-compiler/src/main/java/com/bennyhuo/kotlin/trimindent/compiler/TrimIndentIrGenerator.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class TrimIndentIrGenerator : IrGenerationExtension {
2121
val extensionReceiver = irCall.extensionReceiver!!
2222
if (extensionReceiver is IrConst<*> && extensionReceiver.kind == IrConstKind.String) {
2323
extensionReceiver as IrConst<String>
24-
return extensionReceiver.copyWithNewValue(extensionReceiver.value.trimIndent())
24+
return super.visitExpression(extensionReceiver.copyWithNewValue(extensionReceiver.value.trimIndent()))
2525
}
2626

2727
if (extensionReceiver is IrStringConcatenation) {
@@ -86,7 +86,7 @@ class TrimIndentIrGenerator : IrGenerationExtension {
8686
}
8787
}
8888

89-
return extensionReceiver.copyWithNewValues(args)
89+
return super.visitExpression(extensionReceiver.copyWithNewValues(args))
9090
}
9191
}
9292

trimindent-compiler/src/test/java/com/bennyhuo/kotlin/trimindent/compiler/TrimIndentTest.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ class TrimIndentTest {
2828
testBase("blankLine.kt")
2929
}
3030

31+
@Test
32+
fun embedded() {
33+
testBase("embedded.kt")
34+
}
35+
3136
private fun testBase(fileName: String) {
3237
val loader = FileBasedModuleInfoLoader("testData/$fileName")
3338
val sourceModuleInfos = loader.loadSourceModuleInfos()
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
// SOURCE
2+
// FILE: Main.kt [MainKt#main]
3+
fun main() {
4+
val list = listOf(1, 2, 3)
5+
val list2 = listOf("a", "b", "c")
6+
println("""
7+
A:
8+
${list.joinToString("\n") {
9+
"""
10+
- $it
11+
${list2.joinToString("\n") { "* $it" }}
12+
""".trimIndent()
13+
}}
14+
B:
15+
${
16+
list.joinToString("\n") {
17+
"""
18+
- $it
19+
${list2.joinToString("\n") { "* $it" }}
20+
""".trimIndent()
21+
}
22+
}
23+
""".trimIndent())
24+
}
25+
// EXPECT
26+
// FILE: MainKt.main.stdout
27+
A:
28+
- 1
29+
* a
30+
* b
31+
* c
32+
- 2
33+
* a
34+
* b
35+
* c
36+
- 3
37+
* a
38+
* b
39+
* c
40+
B:
41+
- 1
42+
* a
43+
* b
44+
* c
45+
- 2
46+
* a
47+
* b
48+
* c
49+
- 3
50+
* a
51+
* b
52+
* c
53+
// FILE: Main.kt.ir
54+
fun main() {
55+
val list = listOf(1, 2, 3)
56+
val list2 = listOf("a", "b", "c")
57+
println("A:\n${list.joinToString(
58+
separator = "\n"
59+
) { it: Int ->
60+
"- $it \n${list2.joinToString(
61+
separator = "\n"
62+
) { it: String ->
63+
"* $it"
64+
}
65+
.prependIndent(" ")}"
66+
}
67+
.prependIndent(" ")}\nB: \n${list.joinToString(
68+
separator = "\n"
69+
) { it: Int ->
70+
"- $it \n${list2.joinToString(
71+
separator = "\n"
72+
) { it: String ->
73+
"* $it"
74+
}
75+
.prependIndent(" ")}"
76+
}
77+
.prependIndent(" ")}")
78+
}

0 commit comments

Comments
 (0)