Files
kotlin-fork/compiler/testData/codegen/box/basics/safe_cast.kt
T
2024-02-26 13:38:49 +00:00

31 lines
688 B
Kotlin
Vendored

/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the LICENSE file.
*/
// WITH_STDLIB
import kotlin.test.*
open class A
class B : A()
class C
fun foo(a: Any) : A? = a as? A
fun safe_cast_positive(): Boolean {
val b = B()
return foo(b) === b
}
fun safe_cast_negative(): Boolean {
val c = C()
return foo(c) == null
}
fun box(): String {
val safeCastPositive = safe_cast_positive().toString()
val safeCastNegative = safe_cast_negative().toString()
if (safeCastPositive != "true") return "FAIL safeCastPositive"
if (safeCastNegative != "true") return "FAIL safeCastNegative"
return "OK"
}