Files
kotlin-fork/compiler/testData/diagnostics/tests/cast/kt47685.fir.kt
T
2021-07-13 10:35:03 +03:00

30 lines
690 B
Kotlin
Vendored

// KT-47685
interface KtFunction {
fun foo() {}
}
abstract class ASTDelegatePsiElement {
fun bar() {}
}
class KtNamedFunction : ASTDelegatePsiElement(), KtFunction {
fun baz() {}
}
class KtFunctionLiteral : ASTDelegatePsiElement(), KtFunction
fun test_1(namedFunction: KtNamedFunction, functionLiteral: KtFunctionLiteral, cond: Boolean) {
val function = when (cond) {
true -> namedFunction
false -> functionLiteral
}
// approve that foo has type (ASTDelegatePsiElement & KtFunction)
function.foo()
function.bar()
if (function is KtNamedFunction) {
function.baz()
}
val myNamedFunction = function as KtNamedFunction
}