Analysis API FIR: resolve Java synthetic properties KtSyntheticJavaPropertySymbol
This commit is contained in:
+4
-1
@@ -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>()
|
||||
|
||||
|
||||
+1
-12
@@ -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
|
||||
Reference in New Issue
Block a user