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,33 @@
|
||||
fun notConstant(arg: String): String {
|
||||
return arg.trimMargin()
|
||||
}
|
||||
|
||||
fun notConstantCustomPrefix(arg: String): String {
|
||||
return arg.trimMargin("###")
|
||||
}
|
||||
|
||||
fun interpolated(arg: Int):String {
|
||||
return """
|
||||
|Hello,
|
||||
|$arg
|
||||
""".trimMargin()
|
||||
}
|
||||
|
||||
fun notInvoked():String {
|
||||
return """
|
||||
|Hello,
|
||||
|World
|
||||
"""
|
||||
}
|
||||
|
||||
fun constantWithNonConstantCustomPrefix(arg: String): String {
|
||||
return """
|
||||
|Hello,
|
||||
|World
|
||||
""".trimMargin(arg)
|
||||
}
|
||||
|
||||
// 1 LDC "\\n \|Hello,\\n \|"
|
||||
// 1 LDC "\\n "
|
||||
// 2 LDC "\\n \|Hello,\\n \|World\\n "
|
||||
// 4 INVOKESTATIC kotlin/text/StringsKt.trimMargin
|
||||
Reference in New Issue
Block a user