FIR: remove obsolete DataFlowVariablev.isStable
This commit is contained in:
committed by
TeamCityServer
parent
84a7bdffe5
commit
3c4e3e8db6
@@ -5,13 +5,10 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.resolve.dfa
|
package org.jetbrains.kotlin.fir.resolve.dfa
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.modality
|
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
|
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
|
||||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
|
||||||
import org.jetbrains.kotlin.fir.types.ConeClassErrorType
|
import org.jetbrains.kotlin.fir.types.ConeClassErrorType
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import kotlin.contracts.ExperimentalContracts
|
import kotlin.contracts.ExperimentalContracts
|
||||||
@@ -31,8 +28,6 @@ data class Identifier(
|
|||||||
}
|
}
|
||||||
|
|
||||||
sealed class DataFlowVariable(private val variableIndexForDebug: Int) {
|
sealed class DataFlowVariable(private val variableIndexForDebug: Int) {
|
||||||
abstract val isStable: Boolean
|
|
||||||
|
|
||||||
final override fun toString(): String {
|
final override fun toString(): String {
|
||||||
return "d$variableIndexForDebug"
|
return "d$variableIndexForDebug"
|
||||||
}
|
}
|
||||||
@@ -44,24 +39,6 @@ class RealVariable(
|
|||||||
val explicitReceiverVariable: DataFlowVariable?,
|
val explicitReceiverVariable: DataFlowVariable?,
|
||||||
variableIndexForDebug: Int
|
variableIndexForDebug: Int
|
||||||
) : DataFlowVariable(variableIndexForDebug) {
|
) : DataFlowVariable(variableIndexForDebug) {
|
||||||
override val isStable: Boolean by lazy {
|
|
||||||
when (val symbol = identifier.symbol) {
|
|
||||||
is FirPropertySymbol -> {
|
|
||||||
val property = symbol.fir
|
|
||||||
when {
|
|
||||||
property.isLocal -> true
|
|
||||||
property.isVar -> false
|
|
||||||
property.modality != Modality.FINAL -> false
|
|
||||||
property.receiverTypeRef != null -> false
|
|
||||||
property.getter != null -> false
|
|
||||||
// TODO: getters, delegates
|
|
||||||
else -> true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else -> true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
return this === other
|
return this === other
|
||||||
}
|
}
|
||||||
@@ -96,8 +73,6 @@ class RealVariableAndType(val variable: RealVariable, val originalType: ConeKotl
|
|||||||
}
|
}
|
||||||
|
|
||||||
class SyntheticVariable(val fir: FirElement, variableIndexForDebug: Int) : DataFlowVariable(variableIndexForDebug) {
|
class SyntheticVariable(val fir: FirElement, variableIndexForDebug: Int) : DataFlowVariable(variableIndexForDebug) {
|
||||||
override val isStable: Boolean get() = true
|
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
if (this === other) return true
|
if (this === other) return true
|
||||||
if (javaClass != other?.javaClass) return false
|
if (javaClass != other?.javaClass) return false
|
||||||
|
|||||||
Reference in New Issue
Block a user