[K2] Support proper serialization of string concatenation expressions
This commit is contained in:
+10
@@ -73,6 +73,12 @@ private abstract class FirToConstantValueTransformer(
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitStringConcatenationCall(stringConcatenationCall: FirStringConcatenationCall, data: FirSession): ConstantValue<*>? {
|
||||
val strings = stringConcatenationCall.argumentList.arguments.map { it.accept(this, data) }
|
||||
if (strings.any { it == null || it !is StringValue }) return null
|
||||
return StringValue(strings.joinToString(separator = "") { (it as StringValue).value })
|
||||
}
|
||||
|
||||
override fun visitArrayOfCall(
|
||||
arrayOfCall: FirArrayOfCall,
|
||||
data: FirSession
|
||||
@@ -208,6 +214,10 @@ internal object FirToConstantValueChecker : FirDefaultVisitor<Boolean, FirSessio
|
||||
return constExpression.kind in supportedConstKinds
|
||||
}
|
||||
|
||||
override fun visitStringConcatenationCall(stringConcatenationCall: FirStringConcatenationCall, data: FirSession): Boolean {
|
||||
return stringConcatenationCall.argumentList.arguments.all { it.accept(this, data) }
|
||||
}
|
||||
|
||||
override fun visitArrayOfCall(arrayOfCall: FirArrayOfCall, data: FirSession): Boolean {
|
||||
return arrayOfCall.arguments.all { it.accept(this, data) }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user