FirProvider: search for fake overridden symbol containing file correctly

This commit is contained in:
Mikhail Glukhikh
2019-09-25 13:42:46 +03:00
parent 0438ab96e1
commit 11fb121458
5 changed files with 10 additions and 5 deletions
@@ -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
View File
@@ -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)