Files
kotlin-fork/compiler/testData/ir/irText/firProblems/candidateSymbol.kt
T
Mikhail Glukhikh 267382d86b [FIR2IR] Add problematic test with incorrect type argument
NB: we should not have <E> as AbstractFirBasedSymbol type argument,
because it isn't accessible in the current scope. Star expected instead.
2020-09-14 17:56:30 +03:00

20 lines
629 B
Kotlin
Vendored

class Candidate(val symbol: AbstractFirBasedSymbol<*>)
abstract class AbstractFirBasedSymbol<E> where E : FirSymbolOwner<E>, E : FirDeclaration {
lateinit var fir: E
}
interface FirDeclaration
interface FirSymbolOwner<E> where E : FirSymbolOwner<E>, E : FirDeclaration {
val symbol: AbstractFirBasedSymbol<E>
}
interface FirCallableMemberDeclaration<F : FirCallableMemberDeclaration<F>> : FirSymbolOwner<F>, FirDeclaration {
override val symbol: AbstractFirBasedSymbol<F>
}
fun foo(candidate: Candidate) {
val me = candidate.symbol.fir
if (me is FirCallableMemberDeclaration<*> && me.symbol != null) {}
}