AA FIR: unwrap fake override constructor

This commit is contained in:
Jinseong Jeon
2022-09-23 14:16:20 -07:00
committed by Ilya Kirillov
parent fcd3e4f4c5
commit 2fdedf8251
4 changed files with 7 additions and 8 deletions
@@ -248,8 +248,9 @@ internal class KtSymbolByFirBuilder constructor(
fun buildConstructorSymbol(firSymbol: FirConstructorSymbol): KtFirConstructorSymbol {
val originalFirSymbol = firSymbol.fir.originalConstructorIfTypeAlias?.symbol ?: firSymbol
return symbolsCache.cache(originalFirSymbol) {
KtFirConstructorSymbol(originalFirSymbol, firResolveSession, token, this@KtSymbolByFirBuilder)
val unwrapped = originalFirSymbol.originalIfFakeOverride() ?: originalFirSymbol
return symbolsCache.cache(unwrapped) {
KtFirConstructorSymbol(unwrapped, firResolveSession, token, this@KtSymbolByFirBuilder)
}
}
@@ -63,7 +63,7 @@ internal class KtFirSymbolContainingDeclarationProvider(
}
override fun getContainingModule(symbol: KtSymbol): KtModule {
return symbol.getContainingKtModule(analysisSession.firResolveSession)
return symbol.getContainingKtModule(analysisSession.firResolveSession)
}
private fun getContainingDeclarationForBackingFieldSymbol(symbol: KtSymbolWithKind): KtSymbolWithKind {
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.analysis.api.fir.utils
import org.jetbrains.kotlin.analysis.api.fir.symbols.KtFirSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirModuleData
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.llFirModuleData
import org.jetbrains.kotlin.analysis.project.structure.KtModule
import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull
@@ -16,13 +15,12 @@ import org.jetbrains.kotlin.fir.resolve.toFirRegularClassSymbol
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
val KtSymbol.firSymbol: FirBasedSymbol<*>
internal val KtSymbol.firSymbol: FirBasedSymbol<*>
get() {
require(this is KtFirSymbol<*>)
return this.firSymbol
}
fun FirBasedSymbol<*>.getContainingKtModule(firResolveSession: LLFirResolveSession): KtModule {
val target = when (this) {
is FirCallableSymbol -> {
@@ -6,7 +6,7 @@ KtConstructorSymbol:
hasStableParameterNames: false
isExtension: false
isPrimary: false
origin: SUBSTITUTION_OVERRIDE
origin: JAVA
receiverType: null
returnType: java/util/ArrayList<E>
symbolKind: CLASS_MEMBER
@@ -17,5 +17,5 @@ KtConstructorSymbol:
KtValueParameterSymbol(c)
]
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
getContainingModule: KtSdkModule "SDK jdk"
deprecationStatus: null