Add intrinsics for compile-time computing trimMargin/trimIndent
These only apply when the receiver can be resolved to a constant and the margin prefix, if specified, is also a constant.
This commit is contained in:
committed by
Alexander Udalov
parent
2ec6ab92b5
commit
6ee987fa2e
@@ -0,0 +1,38 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
fun constant(): String {
|
||||
return """
|
||||
|Hello,
|
||||
|World
|
||||
""".trimMargin()
|
||||
}
|
||||
|
||||
private const val HAS_MARGIN = """Hello,
|
||||
|World"""
|
||||
fun interpolatedUsingConstant(): String {
|
||||
return """
|
||||
|Hello,
|
||||
|$HAS_MARGIN
|
||||
|World
|
||||
""".trimMargin()
|
||||
}
|
||||
|
||||
fun constantCustomPrefix(): String {
|
||||
return """
|
||||
###Hello,
|
||||
###World
|
||||
""".trimMargin(marginPrefix = "###")
|
||||
}
|
||||
|
||||
private const val OCTOTHORPE = '#'
|
||||
fun constantCustomPrefixInterpolatedUsingConstant(): String {
|
||||
return """
|
||||
#@#Hello,
|
||||
#@#World
|
||||
""".trimMargin(marginPrefix = "$OCTOTHORPE@$OCTOTHORPE")
|
||||
}
|
||||
|
||||
// 3 LDC "Hello,\\nWorld"
|
||||
// 1 LDC "Hello,\\nHello,\\nWorld\\nWorld"
|
||||
// 0 LDC "###"
|
||||
// 0 INVOKESTATIC kotlin/text/StringsKt.trimMargin
|
||||
Reference in New Issue
Block a user