Analysis API FIR: resolve Java synthetic properties KtSyntheticJavaPropertySymbol

This commit is contained in:
Ilya Kirillov
2022-02-01 13:11:01 +01:00
parent dcbf84771d
commit 441de5cd75
3 changed files with 6 additions and 14 deletions
@@ -605,9 +605,12 @@ private class BuilderCache<From, To : Any> private constructor(
internal fun FirElement.buildSymbol(builder: KtSymbolByFirBuilder) =
(this as? FirDeclaration)?.symbol?.let(builder::buildSymbol)
internal fun FirDeclaration.buildSymbol(builder: KtSymbolByFirBuilder) =
internal fun FirDeclaration.buildSymbol(builder: KtSymbolByFirBuilder): KtSymbol =
builder.buildSymbol(symbol)
internal fun FirBasedSymbol<*>.buildSymbol(builder: KtSymbolByFirBuilder): KtSymbol =
builder.buildSymbol(this)
private fun collectReferencedTypeParameters(declaration: FirCallableDeclaration): Set<ConeTypeParameterLookupTag> {
val allUsedTypeParameters = mutableSetOf<ConeTypeParameterLookupTag>()
@@ -98,18 +98,7 @@ internal object FirReferenceResolveHelper {
listOfNotNull(resolvedSymbol.fir.buildSymbol(symbolBuilder))
}
is FirResolvedNamedReference -> {
val fir = when (val symbol = resolvedSymbol) {
is FirSyntheticPropertySymbol -> {
val syntheticProperty = symbol.fir as FirSyntheticProperty
if (syntheticProperty.getter.delegate.symbol.callableId == symbol.getterId) {
syntheticProperty.getter.delegate
} else {
syntheticProperty.setter!!.delegate
}
}
else -> symbol.fir
}
listOfNotNull(fir.buildSymbol(symbolBuilder))
listOfNotNull(resolvedSymbol.buildSymbol(symbolBuilder))
}
is FirThisReference -> {
val boundSymbol = boundSymbol
@@ -1,2 +1,2 @@
Resolved to:
0: (in JavaClass) open fun getSomething(): kotlin.Int
0: (in JavaClass) open var something: kotlin.Int