Test: SuccessOrFailure calls don't generate erased class references
This commit is contained in:
Vendored
+36
@@ -0,0 +1,36 @@
|
|||||||
|
// WITH_COROUTINES
|
||||||
|
// FILE: test.kt
|
||||||
|
fun testSoF() {
|
||||||
|
val sof = SuccessOrFailure.success("yes!")
|
||||||
|
val failure = SuccessOrFailure.failure<String>(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
|
||||||
@@ -2183,6 +2183,11 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest {
|
|||||||
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/skipCallToUnderlyingValueOfInlineClass.kt");
|
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")
|
@TestMetadata("synthesizedBoxMethodIsNotMangled.kt")
|
||||||
public void testSynthesizedBoxMethodIsNotMangled() throws Exception {
|
public void testSynthesizedBoxMethodIsNotMangled() throws Exception {
|
||||||
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/synthesizedBoxMethodIsNotMangled.kt");
|
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/synthesizedBoxMethodIsNotMangled.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user