[FIR] Use correct source for implicit this receiver

#KT-57489 Fixed
#KT-56139 Fixed
#KT-56755 Fixed
This commit is contained in:
Ivan Kylchik
2023-05-10 12:51:47 +02:00
committed by Space Team
parent ab03cb2357
commit 8f88f08573
23 changed files with 286 additions and 36 deletions
@@ -144,13 +144,13 @@ class VariableStorageImpl(private val session: FirSession) : VariableStorage() {
}
private fun FirBasedSymbol<*>.getStability(originalFir: FirElement): PropertyStability? {
if (originalFir is FirThisReceiverExpression) return PropertyStability.STABLE_VALUE
when (this) {
is FirAnonymousObjectSymbol -> return null
is FirFunctionSymbol<*>,
is FirClassSymbol<*>,
is FirBackingFieldSymbol -> return PropertyStability.STABLE_VALUE
}
if (originalFir is FirThisReceiverExpression) return PropertyStability.STABLE_VALUE
if (this !is FirVariableSymbol<*>) return null
if (this is FirFieldSymbol && !this.isFinal) return PropertyStability.MUTABLE_PROPERTY