febac0dd5f
^KT-65979
31 lines
688 B
Kotlin
Vendored
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"
|
|
} |