[JVM_IR] Trim the expression test string for null assertions.
^KT-47166 Fixed.
This commit is contained in:
committed by
teamcityserver
parent
58adfd8488
commit
6b6ba77869
+6
@@ -26408,6 +26408,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
|
|||||||
runTest("compiler/testData/codegen/box/notNullAssertions/doGenerateParamAssertions.kt");
|
runTest("compiler/testData/codegen/box/notNullAssertions/doGenerateParamAssertions.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("messageLength.kt")
|
||||||
|
public void testMessageLength() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/notNullAssertions/messageLength.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("noCallAssertions.kt")
|
@TestMetadata("noCallAssertions.kt")
|
||||||
public void testNoCallAssertions() throws Exception {
|
public void testNoCallAssertions() throws Exception {
|
||||||
|
|||||||
+4
-1
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.jvm.lower
|
package org.jetbrains.kotlin.backend.jvm.lower
|
||||||
|
|
||||||
|
import com.intellij.openapi.util.text.StringUtil
|
||||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.lower.IrBuildingTransformer
|
import org.jetbrains.kotlin.backend.common.lower.IrBuildingTransformer
|
||||||
import org.jetbrains.kotlin.backend.common.lower.at
|
import org.jetbrains.kotlin.backend.common.lower.at
|
||||||
@@ -422,7 +423,7 @@ private class TypeOperatorLowering(private val context: JvmBackendContext) : Fil
|
|||||||
irComposite(resultType = expression.type) {
|
irComposite(resultType = expression.type) {
|
||||||
+irCall(checkExpressionValueIsNotNull).apply {
|
+irCall(checkExpressionValueIsNotNull).apply {
|
||||||
putValueArgument(0, irGet(valueSymbol.owner))
|
putValueArgument(0, irGet(valueSymbol.owner))
|
||||||
putValueArgument(1, irString(source))
|
putValueArgument(1, irString(source.trimForRuntimeAssertion()))
|
||||||
}
|
}
|
||||||
+irGet(valueSymbol.owner)
|
+irGet(valueSymbol.owner)
|
||||||
}
|
}
|
||||||
@@ -436,6 +437,8 @@ private class TypeOperatorLowering(private val context: JvmBackendContext) : Fil
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun String.trimForRuntimeAssertion() = StringUtil.trimMiddle(this, 50)
|
||||||
|
|
||||||
private fun IrFunction.isDelegated() =
|
private fun IrFunction.isDelegated() =
|
||||||
origin == IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR ||
|
origin == IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR ||
|
||||||
origin == IrDeclarationOrigin.DELEGATED_MEMBER
|
origin == IrDeclarationOrigin.DELEGATED_MEMBER
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
// TARGET_BACKEND: JVM
|
||||||
|
// FILE: test.kt
|
||||||
|
|
||||||
|
fun test(): String {
|
||||||
|
return A()
|
||||||
|
// Large comment that would cause the message for
|
||||||
|
// the non-null assertion to be very large if
|
||||||
|
// it is included verbatim in the message.
|
||||||
|
.foo()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
try {
|
||||||
|
test()
|
||||||
|
} catch(e: Throwable) {
|
||||||
|
return if (e.message!!.length <= " must not be null".length + 50) {
|
||||||
|
"OK"
|
||||||
|
} else {
|
||||||
|
"FAIL1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "FAIL2"
|
||||||
|
}
|
||||||
|
|
||||||
|
// FILE: A.java
|
||||||
|
|
||||||
|
public class A {
|
||||||
|
public String foo() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
+6
@@ -26372,6 +26372,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
|||||||
runTest("compiler/testData/codegen/box/notNullAssertions/doGenerateParamAssertions.kt");
|
runTest("compiler/testData/codegen/box/notNullAssertions/doGenerateParamAssertions.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("messageLength.kt")
|
||||||
|
public void testMessageLength() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/notNullAssertions/messageLength.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("noCallAssertions.kt")
|
@TestMetadata("noCallAssertions.kt")
|
||||||
public void testNoCallAssertions() throws Exception {
|
public void testNoCallAssertions() throws Exception {
|
||||||
|
|||||||
+6
@@ -26408,6 +26408,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/notNullAssertions/doGenerateParamAssertions.kt");
|
runTest("compiler/testData/codegen/box/notNullAssertions/doGenerateParamAssertions.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("messageLength.kt")
|
||||||
|
public void testMessageLength() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/notNullAssertions/messageLength.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("noCallAssertions.kt")
|
@TestMetadata("noCallAssertions.kt")
|
||||||
public void testNoCallAssertions() throws Exception {
|
public void testNoCallAssertions() throws Exception {
|
||||||
|
|||||||
+5
@@ -22344,6 +22344,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
runTest("compiler/testData/codegen/box/notNullAssertions/doGenerateParamAssertions.kt");
|
runTest("compiler/testData/codegen/box/notNullAssertions/doGenerateParamAssertions.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("messageLength.kt")
|
||||||
|
public void testMessageLength() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/notNullAssertions/messageLength.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("noCallAssertions.kt")
|
@TestMetadata("noCallAssertions.kt")
|
||||||
public void testNoCallAssertions() throws Exception {
|
public void testNoCallAssertions() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/notNullAssertions/noCallAssertions.kt");
|
runTest("compiler/testData/codegen/box/notNullAssertions/noCallAssertions.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user