[FIR] Remove some rare used utilities
This commit is contained in:
committed by
Space Team
parent
b53c4a6353
commit
7334694fd9
+2
-2
@@ -15,13 +15,13 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isConst
|
import org.jetbrains.kotlin.fir.declarations.utils.isConst
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isFinal
|
import org.jetbrains.kotlin.fir.declarations.utils.isFinal
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.referredVariableSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.expressions.*
|
import org.jetbrains.kotlin.fir.expressions.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.builder.buildConstExpression
|
import org.jetbrains.kotlin.fir.expressions.builder.buildConstExpression
|
||||||
import org.jetbrains.kotlin.fir.psi
|
import org.jetbrains.kotlin.fir.psi
|
||||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.toResolvedPropertySymbol
|
import org.jetbrains.kotlin.fir.references.toResolvedPropertySymbol
|
||||||
|
import org.jetbrains.kotlin.fir.references.toResolvedVariableSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||||
@@ -48,7 +48,7 @@ internal object FirCompileTimeConstantEvaluator {
|
|||||||
): FirConstExpression<*>? =
|
): FirConstExpression<*>? =
|
||||||
when (fir) {
|
when (fir) {
|
||||||
is FirPropertyAccessExpression -> {
|
is FirPropertyAccessExpression -> {
|
||||||
when (val referredVariable = fir.referredVariableSymbol) {
|
when (val referredVariable = fir.calleeReference.toResolvedVariableSymbol()) {
|
||||||
is FirPropertySymbol -> {
|
is FirPropertySymbol -> {
|
||||||
if (referredVariable.callableId.isStringLength) {
|
if (referredVariable.callableId.isStringLength) {
|
||||||
evaluate(fir.explicitReceiver, mode)?.evaluateStringLength()
|
evaluate(fir.explicitReceiver, mode)?.evaluateStringLength()
|
||||||
|
|||||||
+2
-2
@@ -15,10 +15,10 @@ import org.jetbrains.kotlin.fir.analysis.cfa.util.traverse
|
|||||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isLateInit
|
import org.jetbrains.kotlin.fir.declarations.utils.isLateInit
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.referredPropertySymbol
|
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||||
import org.jetbrains.kotlin.fir.isCatchParameter
|
import org.jetbrains.kotlin.fir.isCatchParameter
|
||||||
|
import org.jetbrains.kotlin.fir.references.toResolvedPropertySymbol
|
||||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.*
|
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.SymbolInternals
|
import org.jetbrains.kotlin.fir.symbols.SymbolInternals
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||||
@@ -61,7 +61,7 @@ object FirPropertyInitializationAnalyzer : AbstractFirPropertyInitializationChec
|
|||||||
}
|
}
|
||||||
|
|
||||||
private val CFGNode<*>.propertySymbol: FirPropertySymbol?
|
private val CFGNode<*>.propertySymbol: FirPropertySymbol?
|
||||||
get() = (fir as? FirQualifiedAccess)?.referredPropertySymbol
|
get() = (fir as? FirQualifiedAccess)?.calleeReference?.toResolvedPropertySymbol()
|
||||||
|
|
||||||
override fun visitVariableAssignmentNode(node: VariableAssignmentNode) {
|
override fun visitVariableAssignmentNode(node: VariableAssignmentNode) {
|
||||||
val symbol = node.propertySymbol ?: return
|
val symbol = node.propertySymbol ?: return
|
||||||
|
|||||||
+2
-2
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.fir.analysis.cfa.util
|
|||||||
import org.jetbrains.kotlin.contracts.description.isInPlace
|
import org.jetbrains.kotlin.contracts.description.isInPlace
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
|
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.referredPropertySymbol
|
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||||
|
import org.jetbrains.kotlin.fir.references.toResolvedPropertySymbol
|
||||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.*
|
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol
|
||||||
@@ -56,7 +56,7 @@ class LocalPropertyAndCapturedWriteCollector private constructor() : ControlFlow
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitVariableAssignmentNode(node: VariableAssignmentNode) {
|
override fun visitVariableAssignmentNode(node: VariableAssignmentNode) {
|
||||||
val symbol = node.fir.referredPropertySymbol ?: return
|
val symbol = node.fir.calleeReference.toResolvedPropertySymbol() ?: return
|
||||||
if (symbol is FirSyntheticPropertySymbol) {
|
if (symbol is FirSyntheticPropertySymbol) {
|
||||||
symbols[symbol] = true
|
symbols[symbol] = true
|
||||||
return
|
return
|
||||||
|
|||||||
+2
-2
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.fir.analysis.cfa.util
|
|||||||
import kotlinx.collections.immutable.PersistentMap
|
import kotlinx.collections.immutable.PersistentMap
|
||||||
import kotlinx.collections.immutable.persistentMapOf
|
import kotlinx.collections.immutable.persistentMapOf
|
||||||
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
|
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.referredPropertySymbol
|
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||||
|
import org.jetbrains.kotlin.fir.references.toResolvedPropertySymbol
|
||||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.*
|
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ class PropertyInitializationInfoCollector(
|
|||||||
data: Collection<Pair<EdgeLabel, PathAwarePropertyInitializationInfo>>
|
data: Collection<Pair<EdgeLabel, PathAwarePropertyInitializationInfo>>
|
||||||
): PathAwarePropertyInitializationInfo {
|
): PathAwarePropertyInitializationInfo {
|
||||||
val dataForNode = visitNode(node, data)
|
val dataForNode = visitNode(node, data)
|
||||||
val symbol = node.fir.referredPropertySymbol ?: return dataForNode
|
val symbol = node.fir.calleeReference.toResolvedPropertySymbol() ?: return dataForNode
|
||||||
return if (symbol !in localProperties) {
|
return if (symbol !in localProperties) {
|
||||||
dataForNode
|
dataForNode
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+2
-2
@@ -8,10 +8,10 @@ package org.jetbrains.kotlin.fir.resolve.dfa
|
|||||||
import org.jetbrains.kotlin.contracts.description.isInPlace
|
import org.jetbrains.kotlin.contracts.description.isInPlace
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.referredPropertySymbol
|
|
||||||
import org.jetbrains.kotlin.fir.expressions.*
|
import org.jetbrains.kotlin.fir.expressions.*
|
||||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirReference
|
import org.jetbrains.kotlin.fir.references.FirReference
|
||||||
|
import org.jetbrains.kotlin.fir.references.toResolvedPropertySymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -55,7 +55,7 @@ internal class FirLocalVariableAssignmentAnalyzer {
|
|||||||
if (assignedLocalVariablesByFunction == null) return false
|
if (assignedLocalVariablesByFunction == null) return false
|
||||||
|
|
||||||
val realFir = fir.unwrapElement() as? FirQualifiedAccessExpression ?: return false
|
val realFir = fir.unwrapElement() as? FirQualifiedAccessExpression ?: return false
|
||||||
val property = realFir.referredPropertySymbol?.fir ?: return false
|
val property = realFir.calleeReference.toResolvedPropertySymbol()?.fir ?: return false
|
||||||
// Have data => have a root function => functionScopes is not empty.
|
// Have data => have a root function => functionScopes is not empty.
|
||||||
return property in functionScopes.top().second || postponedLambdas.all().any { lambdas ->
|
return property in functionScopes.top().second || postponedLambdas.all().any { lambdas ->
|
||||||
// Control-flow-postponed lambdas' assignments should be in `functionScopes.top()`.
|
// Control-flow-postponed lambdas' assignments should be in `functionScopes.top()`.
|
||||||
|
|||||||
+2
-16
@@ -6,22 +6,14 @@
|
|||||||
package org.jetbrains.kotlin.fir.declarations.utils
|
package org.jetbrains.kotlin.fir.declarations.utils
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
|
|
||||||
import org.jetbrains.kotlin.fir.references.toResolvedVariableSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
|
||||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||||
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
val FirTypeAlias.expandedConeType: ConeClassLikeType? get() = expandedTypeRef.coneTypeSafe()
|
val FirTypeAlias.expandedConeType: ConeClassLikeType? get() = expandedTypeRef.coneTypeSafe()
|
||||||
|
|
||||||
val FirClassLikeDeclaration.classId
|
val FirClassLikeDeclaration.classId: ClassId
|
||||||
get() = when (this) {
|
get() = symbol.classId
|
||||||
is FirClass -> symbol.classId
|
|
||||||
is FirTypeAlias -> symbol.classId
|
|
||||||
}
|
|
||||||
|
|
||||||
val FirClass.classId: ClassId get() = symbol.classId
|
|
||||||
|
|
||||||
val FirClass.superConeTypes: List<ConeClassLikeType> get() = superTypeRefs.mapNotNull { it.coneTypeSafe() }
|
val FirClass.superConeTypes: List<ConeClassLikeType> get() = superTypeRefs.mapNotNull { it.coneTypeSafe() }
|
||||||
|
|
||||||
@@ -31,12 +23,6 @@ val FirClass.anonymousInitializers: List<FirAnonymousInitializer>
|
|||||||
val FirClass.delegateFields: List<FirField>
|
val FirClass.delegateFields: List<FirField>
|
||||||
get() = declarations.filterIsInstance<FirField>().filter { it.isSynthetic }
|
get() = declarations.filterIsInstance<FirField>().filter { it.isSynthetic }
|
||||||
|
|
||||||
val FirQualifiedAccess.referredVariableSymbol: FirVariableSymbol<*>?
|
|
||||||
get() = calleeReference.toResolvedVariableSymbol()
|
|
||||||
|
|
||||||
val FirQualifiedAccess.referredPropertySymbol: FirPropertySymbol?
|
|
||||||
get() = referredVariableSymbol as? FirPropertySymbol
|
|
||||||
|
|
||||||
inline val FirDeclaration.isJava: Boolean
|
inline val FirDeclaration.isJava: Boolean
|
||||||
get() = origin is FirDeclarationOrigin.Java
|
get() = origin is FirDeclarationOrigin.Java
|
||||||
inline val FirDeclaration.isJavaSource: Boolean
|
inline val FirDeclaration.isJavaSource: Boolean
|
||||||
|
|||||||
Reference in New Issue
Block a user