[K/N] Properly handle multi-line diagnostics test directives
diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/ExternalSourcesTransformation.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/ExternalSourcesTransformation.kt
index e9059ba..456e6dc 100644
--- a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/ExternalSourcesTransformation.kt
+++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/ExternalSourcesTransformation.kt
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.konan.test.blackbox.support.util
+import org.jetbrains.kotlin.codeMetaInfo.clearTextFromDiagnosticMarkup
import org.jetbrains.kotlin.konan.test.blackbox.AbstractNativeCodegenBoxTest
/**
@@ -18,8 +19,7 @@
override fun invoke(source: String) = source.lineSequence().joinToString("\n") { line ->
// Remove all diagnostic parameters from the text. Examples:
// <!NO_TAIL_CALLS_FOUND!>, <!NON_TAIL_RECURSIVE_CALL!>, <!>.
- line.replace(DIAGNOSTIC_REGEX) { match -> match.groupValues[1] }
+ // Removal must be done per source line, since doing it for whole file causes issues under Windows
+ clearTextFromDiagnosticMarkup(line)
}
-
- private val DIAGNOSTIC_REGEX = Regex("<!.*?!>(.*?)<!>")
}