[FIR] Don't approximate captured types
This fixes some type argument mismatch errors caused by a captured type being approximated and then captured again. Some places need to be adapted to work with captured types that previously only worked with approximated types. #KT-62959 Fixed
This commit is contained in:
committed by
Space Team
parent
b6d7f35ebf
commit
251827c9aa
@@ -0,0 +1,18 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
abstract class FirBasedSymbol<E : FirDeclaration> {
|
||||
val fir: E get() = null!!
|
||||
}
|
||||
abstract class FirCallableSymbol<D : FirCallableDeclaration> : FirBasedSymbol<D>()
|
||||
|
||||
sealed class FirDeclaration
|
||||
sealed class FirCallableDeclaration : FirDeclaration()
|
||||
|
||||
class FirFunction : FirCallableDeclaration()
|
||||
class FirVariable : FirCallableDeclaration()
|
||||
|
||||
val FirCallableSymbol<*>.isExtension: Boolean
|
||||
get() = when (fir) {
|
||||
is FirFunction -> true
|
||||
is FirVariable -> false
|
||||
}
|
||||
Reference in New Issue
Block a user