fixup! fix complex solution
diff --git a/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.fir.txt b/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.fir.txt
index 068e44c..3c42931 100644
--- a/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.fir.txt
+++ b/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.fir.txt
@@ -1,5 +1,6 @@
 FILE: binaryOperators.kt
     public final fun main(): R|kotlin/Unit| {
+        lval case0: R|kotlin/String| = String(\u0001\u0000\u0001\u0800)
         lval case1: R|kotlin/String| = String(12)
         lval case2: R|kotlin/String| = String(123)
         lval case3: R|kotlin/String| = String(123)
diff --git a/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.kt b/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.kt
index bd16d8f..e5bcc0a 100644
--- a/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.kt
+++ b/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.kt
@@ -1,4 +1,5 @@
 fun main() {
+    val case0 = "\u0001\u0000" + "\u0001\u0800"
     val case1 = "1" + "2"
     val case2 = "1" + "2" + "3"
     val case3 = ("1" + "2") + "3"
diff --git a/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.vfir.txt b/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.vfir.txt
index 2ae280d..755867c 100644
--- a/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.vfir.txt
+++ b/compiler/fir/analysis-tests/testData/resolve/vfir/expressions/binaryOperators.vfir.txt
@@ -40,6 +40,13 @@
    FirPropertyImpl
     FirResolvedDeclarationStatusImpl
     FirResolvedTypeRefImpl
+    FirLiteralExpressionImpl
+    FirDefaultPropertyBackingField
+     FirResolvedTypeRefImpl
+     FirResolvedDeclarationStatusImpl
+   FirPropertyImpl
+    FirResolvedDeclarationStatusImpl
+    FirResolvedTypeRefImpl
     FirFunctionCallImpl
      FirLiteralExpressionImpl
      FirResolvedArgumentListImpl
diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirExpressionBuilder.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirExpressionBuilder.kt
index 57b0146..38371fd 100644
--- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirExpressionBuilder.kt
+++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirExpressionBuilder.kt
@@ -301,7 +301,11 @@
                 if (children.size == 1 && children[0]!!.tokenType == LITERAL_STRING_TEMPLATE_ENTRY && context.folder.canFold()) {
                     context.folder.fold(children[0]!!.asText)
                     return null
-                } else {
+                } else if (context.folder.canFold() && children.all { it!!.tokenType == LITERAL_STRING_TEMPLATE_ENTRY || it.tokenType == ESCAPE_STRING_TEMPLATE_ENTRY }) {
+                    children.forEach { context.folder.fold(it!!.asText) }
+                    return null
+                }
+                else {
                     context.folder.disable()
                     return convertStringTemplate(expression)
                 }
diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiRawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiRawFirBuilder.kt
index 56a05fa..18559fe 100644
--- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiRawFirBuilder.kt
+++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiRawFirBuilder.kt
@@ -10,6 +10,7 @@
 import com.intellij.psi.util.PsiUtilCore.getElementType
 import com.intellij.util.AstLoadingFilter
 import org.jetbrains.kotlin.*
+import org.jetbrains.kotlin.KtNodeTypes.ESCAPE_STRING_TEMPLATE_ENTRY
 import org.jetbrains.kotlin.KtNodeTypes.LITERAL_STRING_TEMPLATE_ENTRY
 import org.jetbrains.kotlin.builtins.StandardNames
 import org.jetbrains.kotlin.builtins.StandardNames.BACKING_FIELD
@@ -53,6 +54,8 @@
 import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
 import org.jetbrains.kotlin.utils.exceptions.requireWithAttachment
 import org.jetbrains.kotlin.utils.exceptions.withPsiEntry
+import kotlin.collections.all
+import kotlin.collections.forEach
 
 open class PsiRawFirBuilder(
     session: FirSession,
@@ -2904,6 +2907,10 @@
                     if (expression.entries.size == 1 && getElementType(expression.entries[0]) == LITERAL_STRING_TEMPLATE_ENTRY && context.folder.canFold()) {
                         context.folder.fold(expression.entries[0].asText)
                         return null
+                    }
+                    else if (context.folder.canFold() && expression.entries.all { getElementType(it).let { it == LITERAL_STRING_TEMPLATE_ENTRY || it == ESCAPE_STRING_TEMPLATE_ENTRY } }) {
+                        expression.entries.forEach { context.folder.fold(it!!.asText) }
+                        return null
                     } else {
                         context.folder.disable()
                         return expression.accept(this, data)