FirProvider: search for fake overridden symbol containing file correctly
This commit is contained in:
@@ -23,13 +23,15 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
|
||||
import org.jetbrains.kotlin.fir.types.ConeLookupTagBasedType
|
||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitorVoid
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
class FirProviderImpl(val session: FirSession) : FirProvider() {
|
||||
override fun getFirCallableContainerFile(symbol: FirCallableSymbol<*>): FirFile? {
|
||||
symbol.overriddenSymbol?.let {
|
||||
return getFirCallableContainerFile(it)
|
||||
}
|
||||
return state.callableContainerMap[symbol]
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -8,8 +8,8 @@ FILE: problems2.kt
|
||||
^find Null(null)
|
||||
}
|
||||
|
||||
public final fun intern(obj: R|T|): <ERROR TYPE REF: Inapplicable(HIDDEN): [/Interner.find]> {
|
||||
^intern <Inapplicable(HIDDEN): [/Interner.find]>#(R|<local>/obj|)
|
||||
public final fun intern(obj: R|T|): R|kotlin/Int?| {
|
||||
^intern this@R|/Interner|.R|FakeOverride</Interner.find: R|kotlin/Int?|>|(R|<local>/obj|)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,4 +11,7 @@ import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||
|
||||
abstract class FirCallableSymbol<D : FirCallableDeclaration<D>> : AbstractFirBasedSymbol<D>() {
|
||||
abstract val callableId: CallableId
|
||||
|
||||
open val overriddenSymbol: FirCallableSymbol<D>?
|
||||
get() = null
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ open class FirNamedFunctionSymbol(
|
||||
callableId: CallableId,
|
||||
val isFakeOverride: Boolean = false,
|
||||
// Actual for fake override only
|
||||
val overriddenSymbol: FirNamedFunctionSymbol? = null
|
||||
override val overriddenSymbol: FirNamedFunctionSymbol? = null
|
||||
) : FirFunctionSymbol<FirNamedFunction>(callableId)
|
||||
|
||||
class FirConstructorSymbol(
|
||||
|
||||
@@ -22,7 +22,7 @@ open class FirPropertySymbol(
|
||||
callableId: CallableId,
|
||||
val isFakeOverride: Boolean = false,
|
||||
// Actual for fake override only
|
||||
val overriddenSymbol: FirPropertySymbol? = null
|
||||
override val overriddenSymbol: FirPropertySymbol? = null
|
||||
) : FirVariableSymbol<FirProperty>(callableId)
|
||||
|
||||
class FirBackingFieldSymbol(callableId: CallableId) : FirVariableSymbol<FirProperty>(callableId)
|
||||
|
||||
Reference in New Issue
Block a user