AA FIR: unwrap fake override constructor
This commit is contained in:
committed by
Ilya Kirillov
parent
fcd3e4f4c5
commit
2fdedf8251
+3
-2
@@ -248,8 +248,9 @@ internal class KtSymbolByFirBuilder constructor(
|
|||||||
|
|
||||||
fun buildConstructorSymbol(firSymbol: FirConstructorSymbol): KtFirConstructorSymbol {
|
fun buildConstructorSymbol(firSymbol: FirConstructorSymbol): KtFirConstructorSymbol {
|
||||||
val originalFirSymbol = firSymbol.fir.originalConstructorIfTypeAlias?.symbol ?: firSymbol
|
val originalFirSymbol = firSymbol.fir.originalConstructorIfTypeAlias?.symbol ?: firSymbol
|
||||||
return symbolsCache.cache(originalFirSymbol) {
|
val unwrapped = originalFirSymbol.originalIfFakeOverride() ?: originalFirSymbol
|
||||||
KtFirConstructorSymbol(originalFirSymbol, firResolveSession, token, this@KtSymbolByFirBuilder)
|
return symbolsCache.cache(unwrapped) {
|
||||||
|
KtFirConstructorSymbol(unwrapped, firResolveSession, token, this@KtSymbolByFirBuilder)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -63,7 +63,7 @@ internal class KtFirSymbolContainingDeclarationProvider(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getContainingModule(symbol: KtSymbol): KtModule {
|
override fun getContainingModule(symbol: KtSymbol): KtModule {
|
||||||
return symbol.getContainingKtModule(analysisSession.firResolveSession)
|
return symbol.getContainingKtModule(analysisSession.firResolveSession)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getContainingDeclarationForBackingFieldSymbol(symbol: KtSymbolWithKind): KtSymbolWithKind {
|
private fun getContainingDeclarationForBackingFieldSymbol(symbol: KtSymbolWithKind): KtSymbolWithKind {
|
||||||
|
|||||||
+1
-3
@@ -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.fir.symbols.KtFirSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
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.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.low.level.api.fir.project.structure.llFirModuleData
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||||
import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull
|
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.FirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
|
|
||||||
val KtSymbol.firSymbol: FirBasedSymbol<*>
|
internal val KtSymbol.firSymbol: FirBasedSymbol<*>
|
||||||
get() {
|
get() {
|
||||||
require(this is KtFirSymbol<*>)
|
require(this is KtFirSymbol<*>)
|
||||||
return this.firSymbol
|
return this.firSymbol
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun FirBasedSymbol<*>.getContainingKtModule(firResolveSession: LLFirResolveSession): KtModule {
|
fun FirBasedSymbol<*>.getContainingKtModule(firResolveSession: LLFirResolveSession): KtModule {
|
||||||
val target = when (this) {
|
val target = when (this) {
|
||||||
is FirCallableSymbol -> {
|
is FirCallableSymbol -> {
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@ KtConstructorSymbol:
|
|||||||
hasStableParameterNames: false
|
hasStableParameterNames: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
isPrimary: false
|
isPrimary: false
|
||||||
origin: SUBSTITUTION_OVERRIDE
|
origin: JAVA
|
||||||
receiverType: null
|
receiverType: null
|
||||||
returnType: java/util/ArrayList<E>
|
returnType: java/util/ArrayList<E>
|
||||||
symbolKind: CLASS_MEMBER
|
symbolKind: CLASS_MEMBER
|
||||||
@@ -17,5 +17,5 @@ KtConstructorSymbol:
|
|||||||
KtValueParameterSymbol(c)
|
KtValueParameterSymbol(c)
|
||||||
]
|
]
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSdkModule "SDK jdk"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
Reference in New Issue
Block a user