Files
kotlin-fork/compiler/testData/ir/irText/firProblems/candidateSymbol.kt.txt
T
2024-02-16 10:19:38 +00:00

53 lines
1.1 KiB
Kotlin
Vendored

abstract class AbstractFirBasedSymbol<E> where E : FirDeclaration, E : FirSymbolOwner<E> {
lateinit var fir: E
get
set
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class Candidate {
val symbol: AbstractFirBasedSymbol<*>
field = symbol
get
constructor(symbol: AbstractFirBasedSymbol<*>) /* primary */ {
super/*Any*/()
/* <init>() */
}
}
interface FirCallableMemberDeclaration<F : FirCallableMemberDeclaration<F>> : FirDeclaration, FirSymbolOwner<F> {
abstract override val symbol: AbstractFirBasedSymbol<F>
abstract override get
}
interface FirDeclaration {
}
interface FirSymbolOwner<E> where E : FirDeclaration, E : FirSymbolOwner<E> {
abstract val symbol: AbstractFirBasedSymbol<E>
abstract get
}
fun foo(candidate: Candidate) {
val me: FirSymbolOwner<*> = candidate.<get-symbol>().<get-fir>()
when {
when {
me is FirCallableMemberDeclaration<*> -> EQEQ(arg0 = me /*as FirCallableMemberDeclaration<out FirCallableMemberDeclaration<*>> */.<get-symbol>(), arg1 = null).not()
else -> false
} -> { // BLOCK
}
}
}