diff --git a/compiler/testData/codegen/bytecodeText/inlineClasses/successOrFailureApiDoesntUseErasedClass.kt b/compiler/testData/codegen/bytecodeText/inlineClasses/successOrFailureApiDoesntUseErasedClass.kt new file mode 100644 index 00000000000..58c68a51411 --- /dev/null +++ b/compiler/testData/codegen/bytecodeText/inlineClasses/successOrFailureApiDoesntUseErasedClass.kt @@ -0,0 +1,36 @@ +// WITH_COROUTINES +// FILE: test.kt +fun testSoF() { + val sof = SuccessOrFailure.success("yes!") + val failure = SuccessOrFailure.failure(Exception()) + + if (sof.isSuccess) println("success") + if (sof.isFailure) println("failure") + println(sof.getOrThrow()) + println(failure.getOrNull()) + println(failure.exceptionOrNull()) + + val other = SuccessOrFailure.success("nope") + if (sof == other) println("==") + if (sof != other) println("!=") + if (sof.equals(other)) println("equals") + if (!sof.equals(other)) println("!equals") + + println(sof.hashCode()) + println(sof.toString()) + println("$sof") + + val ans1 = runCatching { 42 } + println(ans1) + + val ans2 = 42.runCatching { this } + println(ans2) + + println(sof.getOrElse { "oops" }) + println(sof.getOrDefault("oops")) +} + +// @TestKt.class: +// 0 SuccessOrFailure\$Erased +// 0 SuccessOrFailure\-Erased +// 58 SuccessOrFailure \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java index c8265ce57c9..2d07249f29a 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java @@ -2183,6 +2183,11 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest { runTest("compiler/testData/codegen/bytecodeText/inlineClasses/skipCallToUnderlyingValueOfInlineClass.kt"); } + @TestMetadata("successOrFailureApiDoesntUseErasedClass.kt") + public void testSuccessOrFailureApiDoesntUseErasedClass() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/inlineClasses/successOrFailureApiDoesntUseErasedClass.kt"); + } + @TestMetadata("synthesizedBoxMethodIsNotMangled.kt") public void testSynthesizedBoxMethodIsNotMangled() throws Exception { runTest("compiler/testData/codegen/bytecodeText/inlineClasses/synthesizedBoxMethodIsNotMangled.kt");