[FIR] Force checker components to create checkers sets on each access
This is needed to add ability to recreate checkers which are not objects for each session
This commit is contained in:
+80
-69
@@ -13,90 +13,101 @@ import org.jetbrains.kotlin.fir.analysis.checkers.cfa.FirControlFlowChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.*
|
||||
|
||||
object CommonDeclarationCheckers : DeclarationCheckers() {
|
||||
override val basicDeclarationCheckers: Set<FirBasicDeclarationChecker> = setOf(
|
||||
FirAnnotationArgumentChecker,
|
||||
FirModifierChecker,
|
||||
FirConflictsChecker,
|
||||
FirConflictingProjectionChecker,
|
||||
FirTypeConstraintsChecker,
|
||||
)
|
||||
override val basicDeclarationCheckers: Set<FirBasicDeclarationChecker>
|
||||
get() = setOf(
|
||||
FirAnnotationArgumentChecker,
|
||||
FirModifierChecker,
|
||||
FirConflictsChecker,
|
||||
FirConflictingProjectionChecker,
|
||||
FirTypeConstraintsChecker,
|
||||
)
|
||||
|
||||
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker> = setOf(
|
||||
FirInfixFunctionDeclarationChecker,
|
||||
FirExposedVisibilityDeclarationChecker,
|
||||
FirSealedSupertypeChecker,
|
||||
FirTypeAliasChecker,
|
||||
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker>
|
||||
get() = setOf(
|
||||
FirInfixFunctionDeclarationChecker,
|
||||
FirExposedVisibilityDeclarationChecker,
|
||||
FirSealedSupertypeChecker,
|
||||
FirTypeAliasChecker,
|
||||
FirCyclicTypeBoundsChecker,
|
||||
)
|
||||
|
||||
override val functionCheckers: Set<FirFunctionChecker> = setOf(
|
||||
FirContractChecker,
|
||||
FirFunctionParameterChecker,
|
||||
)
|
||||
override val functionCheckers: Set<FirFunctionChecker>
|
||||
get() = setOf(
|
||||
FirContractChecker,
|
||||
FirFunctionParameterChecker,
|
||||
)
|
||||
|
||||
override val simpleFunctionCheckers: Set<FirSimpleFunctionChecker> = setOf(
|
||||
FirFunctionNameChecker,
|
||||
override val simpleFunctionCheckers: Set<FirSimpleFunctionChecker>
|
||||
get() = setOf(
|
||||
FirFunctionNameChecker,
|
||||
FirFunctionTypeParametersChecker,
|
||||
)
|
||||
|
||||
override val propertyCheckers: Set<FirPropertyChecker> = setOf(
|
||||
FirInapplicableLateinitChecker,
|
||||
FirDestructuringDeclarationChecker,
|
||||
FirConstPropertyChecker,
|
||||
FirPropertyAccessorChecker,
|
||||
FirPropertyTypeParametersChecker,
|
||||
FirPropertyAccessorChecker,
|
||||
FirInitializerTypeMismatchChecker
|
||||
)
|
||||
override val propertyCheckers: Set<FirPropertyChecker>
|
||||
get() = setOf(
|
||||
FirInapplicableLateinitChecker,
|
||||
FirDestructuringDeclarationChecker,
|
||||
FirConstPropertyChecker,
|
||||
FirPropertyAccessorChecker,
|
||||
FirPropertyTypeParametersChecker,
|
||||
FirPropertyAccessorChecker,FirInitializerTypeMismatchChecker
|
||||
)
|
||||
|
||||
override val classCheckers: Set<FirClassChecker> = setOf(
|
||||
FirOverrideChecker,
|
||||
FirNotImplementedOverrideChecker,
|
||||
FirThrowableSubclassChecker,
|
||||
FirOpenMemberChecker,
|
||||
)
|
||||
override val classCheckers: Set<FirClassChecker>
|
||||
get() = setOf(
|
||||
FirOverrideChecker,
|
||||
FirNotImplementedOverrideChecker,
|
||||
FirThrowableSubclassChecker,
|
||||
FirOpenMemberChecker,
|
||||
)
|
||||
|
||||
override val regularClassCheckers: Set<FirRegularClassChecker> = setOf(
|
||||
FirAnnotationClassDeclarationChecker,
|
||||
FirCommonConstructorDelegationIssuesChecker,
|
||||
FirConstructorInInterfaceChecker,
|
||||
FirDelegationSuperCallInEnumConstructorChecker,
|
||||
FirDelegationInInterfaceChecker,
|
||||
FirEnumClassSimpleChecker,
|
||||
FirInterfaceWithSuperclassChecker,
|
||||
FirLocalEntityNotAllowedChecker,
|
||||
FirManyCompanionObjectsChecker,
|
||||
FirMethodOfAnyImplementedInInterfaceChecker,
|
||||
FirDataClassPrimaryConstructorChecker,
|
||||
FirPrimaryConstructorSuperTypeChecker,
|
||||
FirTypeParametersInObjectChecker,
|
||||
FirMemberFunctionsChecker,
|
||||
FirMemberPropertiesChecker,
|
||||
FirNestedClassChecker,
|
||||
FirInlineClassDeclarationChecker,
|
||||
)
|
||||
override val regularClassCheckers: Set<FirRegularClassChecker>
|
||||
get() = setOf(
|
||||
FirAnnotationClassDeclarationChecker,
|
||||
FirCommonConstructorDelegationIssuesChecker,
|
||||
FirConstructorInInterfaceChecker,
|
||||
FirDelegationSuperCallInEnumConstructorChecker,
|
||||
FirDelegationInInterfaceChecker,
|
||||
FirEnumClassSimpleChecker,
|
||||
FirInterfaceWithSuperclassChecker,
|
||||
FirLocalEntityNotAllowedChecker,
|
||||
FirManyCompanionObjectsChecker,
|
||||
FirMethodOfAnyImplementedInInterfaceChecker,
|
||||
FirDataClassPrimaryConstructorChecker,
|
||||
FirPrimaryConstructorSuperTypeChecker,
|
||||
FirTypeParametersInObjectChecker,
|
||||
FirMemberFunctionsChecker,
|
||||
FirMemberPropertiesChecker,
|
||||
FirNestedClassChecker,
|
||||
FirInlineClassDeclarationChecker,
|
||||
)
|
||||
|
||||
override val constructorCheckers: Set<FirConstructorChecker> = setOf(
|
||||
FirConstructorAllowedChecker,
|
||||
)
|
||||
override val constructorCheckers: Set<FirConstructorChecker>
|
||||
get() = setOf(
|
||||
FirConstructorAllowedChecker,
|
||||
)
|
||||
|
||||
override val fileCheckers: Set<FirFileChecker> = setOf(
|
||||
FirKClassWithIncorrectTypeArgumentChecker,
|
||||
FirTopLevelFunctionsChecker,
|
||||
FirTopLevelPropertiesChecker,
|
||||
)
|
||||
override val fileCheckers: Set<FirFileChecker>
|
||||
get() = setOf(
|
||||
FirKClassWithIncorrectTypeArgumentChecker,
|
||||
FirTopLevelFunctionsChecker,
|
||||
FirTopLevelPropertiesChecker,
|
||||
)
|
||||
|
||||
override val controlFlowAnalyserCheckers: Set<FirControlFlowChecker> = setOf(
|
||||
FirCallsEffectAnalyzer,
|
||||
FirReturnsImpliesAnalyzer,
|
||||
)
|
||||
override val controlFlowAnalyserCheckers: Set<FirControlFlowChecker>
|
||||
get() = setOf(
|
||||
FirCallsEffectAnalyzer,
|
||||
FirReturnsImpliesAnalyzer,
|
||||
)
|
||||
|
||||
override val variableAssignmentCfaBasedCheckers: Set<AbstractFirPropertyInitializationChecker> = setOf(
|
||||
FirPropertyInitializationAnalyzer,
|
||||
)
|
||||
override val variableAssignmentCfaBasedCheckers: Set<AbstractFirPropertyInitializationChecker>
|
||||
get() = setOf(
|
||||
FirPropertyInitializationAnalyzer,
|
||||
)
|
||||
|
||||
override val typeParameterCheckers: Set<FirTypeParameterChecker> = setOf(
|
||||
FirTypeParameterBoundsChecker,
|
||||
override val typeParameterCheckers: Set<FirTypeParameterChecker>
|
||||
get() = setOf(
|
||||
FirTypeParameterBoundsChecker,
|
||||
FirTypeParameterVarianceChecker,
|
||||
FirReifiedTypeParameterChecker,
|
||||
)
|
||||
|
||||
+43
-36
@@ -8,48 +8,55 @@ package org.jetbrains.kotlin.fir.checkers
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.*
|
||||
|
||||
object CommonExpressionCheckers : ExpressionCheckers() {
|
||||
override val basicExpressionCheckers: Set<FirBasicExpressionChecker> = setOf(
|
||||
FirAnonymousFunctionChecker,
|
||||
FirCheckNotNullCallChecker,
|
||||
FirGetClassCallChecker,
|
||||
FirSafeCallExpressionChecker,
|
||||
)
|
||||
override val basicExpressionCheckers: Set<FirBasicExpressionChecker>
|
||||
get() = setOf(
|
||||
FirAnonymousFunctionChecker,
|
||||
FirCheckNotNullCallChecker,
|
||||
FirGetClassCallChecker,
|
||||
FirSafeCallExpressionChecker,
|
||||
)
|
||||
|
||||
override val qualifiedAccessCheckers: Set<FirQualifiedAccessChecker> = setOf(
|
||||
FirCallableReferenceChecker,
|
||||
FirSuperNotAvailableChecker,
|
||||
FirNotASupertypeChecker,
|
||||
FirSuperclassNotAccessibleFromInterfaceChecker,
|
||||
FirAbstractSuperCallChecker,
|
||||
FirQualifiedSupertypeExtendedByOtherSupertypeChecker,
|
||||
FirProjectionsOnNonClassTypeArgumentChecker,
|
||||
FirUpperBoundViolatedChecker,
|
||||
FirTypeArgumentsNotAllowedExpressionChecker,
|
||||
FirTypeParameterInQualifiedAccessChecker,
|
||||
FirSealedClassConstructorCallChecker,
|
||||
FirUninitializedEnumChecker,
|
||||
override val qualifiedAccessCheckers: Set<FirQualifiedAccessChecker>
|
||||
get() = setOf(
|
||||
FirCallableReferenceChecker,
|
||||
FirSuperNotAvailableChecker,
|
||||
FirNotASupertypeChecker,
|
||||
FirSuperclassNotAccessibleFromInterfaceChecker,
|
||||
FirAbstractSuperCallChecker,
|
||||
FirQualifiedSupertypeExtendedByOtherSupertypeChecker,
|
||||
FirProjectionsOnNonClassTypeArgumentChecker,
|
||||
FirUpperBoundViolatedChecker,
|
||||
FirTypeArgumentsNotAllowedExpressionChecker,
|
||||
FirTypeParameterInQualifiedAccessChecker,
|
||||
FirSealedClassConstructorCallChecker,
|
||||
FirUninitializedEnumChecker,
|
||||
FirFunInterfaceConstructorReferenceChecker,
|
||||
)
|
||||
|
||||
override val functionCallCheckers: Set<FirFunctionCallChecker> = setOf(
|
||||
FirConventionFunctionCallChecker,
|
||||
FirDivisionByZeroChecker
|
||||
)
|
||||
override val functionCallCheckers: Set<FirFunctionCallChecker>
|
||||
get() = setOf(
|
||||
FirConventionFunctionCallChecker,
|
||||
FirDivisionByZeroChecker
|
||||
)
|
||||
|
||||
override val tryExpressionCheckers: Set<FirTryExpressionChecker> = setOf(
|
||||
FirCatchParameterChecker
|
||||
)
|
||||
override val tryExpressionCheckers: Set<FirTryExpressionChecker>
|
||||
get() = setOf(
|
||||
FirCatchParameterChecker
|
||||
)
|
||||
|
||||
override val variableAssignmentCheckers: Set<FirVariableAssignmentChecker> = setOf(
|
||||
FirValReassignmentViaBackingFieldChecker
|
||||
)
|
||||
override val variableAssignmentCheckers: Set<FirVariableAssignmentChecker>
|
||||
get() = setOf(
|
||||
FirValReassignmentViaBackingFieldChecker
|
||||
)
|
||||
|
||||
override val whenExpressionCheckers: Set<FirWhenExpressionChecker> = setOf(
|
||||
FirExhaustiveWhenChecker
|
||||
)
|
||||
override val whenExpressionCheckers: Set<FirWhenExpressionChecker>
|
||||
get() = setOf(
|
||||
FirExhaustiveWhenChecker
|
||||
)
|
||||
|
||||
override val returnExpressionCheckers: Set<FirReturnExpressionChecker> = setOf(
|
||||
FirReturnAllowedChecker,
|
||||
FirFunctionReturnTypeMismatchChecker
|
||||
)
|
||||
override val returnExpressionCheckers: Set<FirReturnExpressionChecker>
|
||||
get() = setOf(
|
||||
FirReturnAllowedChecker,
|
||||
FirFunctionReturnTypeMismatchChecker
|
||||
)
|
||||
}
|
||||
|
||||
+19
-15
@@ -15,22 +15,26 @@ import org.jetbrains.kotlin.fir.analysis.checkers.extended.*
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
|
||||
object ExtendedDeclarationCheckers : DeclarationCheckers() {
|
||||
override val basicDeclarationCheckers: Set<FirBasicDeclarationChecker> = setOf(
|
||||
RedundantVisibilityModifierChecker,
|
||||
RedundantReturnUnitType,
|
||||
)
|
||||
override val basicDeclarationCheckers: Set<FirBasicDeclarationChecker>
|
||||
get() = setOf(
|
||||
RedundantVisibilityModifierChecker,
|
||||
RedundantReturnUnitType,
|
||||
)
|
||||
|
||||
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker> = setOf(
|
||||
RedundantModalityModifierChecker,
|
||||
RedundantExplicitTypeChecker,
|
||||
RedundantSetterParameterTypeChecker,
|
||||
)
|
||||
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker>
|
||||
get() = setOf(
|
||||
RedundantModalityModifierChecker,
|
||||
RedundantExplicitTypeChecker,
|
||||
RedundantSetterParameterTypeChecker,
|
||||
)
|
||||
|
||||
override val variableAssignmentCfaBasedCheckers: Set<AbstractFirPropertyInitializationChecker> = setOf(
|
||||
CanBeValChecker,
|
||||
)
|
||||
override val variableAssignmentCfaBasedCheckers: Set<AbstractFirPropertyInitializationChecker>
|
||||
get() = setOf(
|
||||
CanBeValChecker,
|
||||
)
|
||||
|
||||
override val controlFlowAnalyserCheckers: Set<FirControlFlowChecker> = setOf(
|
||||
UnusedChecker,
|
||||
)
|
||||
override val controlFlowAnalyserCheckers: Set<FirControlFlowChecker>
|
||||
get() = setOf(
|
||||
UnusedChecker,
|
||||
)
|
||||
}
|
||||
|
||||
+15
-12
@@ -12,18 +12,21 @@ import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirVariableAssignme
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.extended.*
|
||||
|
||||
object ExtendedExpressionCheckers : ExpressionCheckers() {
|
||||
override val basicExpressionCheckers: Set<FirBasicExpressionChecker> = setOf(
|
||||
ArrayEqualityCanBeReplacedWithEquals,
|
||||
RedundantSingleExpressionStringTemplateChecker,
|
||||
EmptyRangeChecker,
|
||||
)
|
||||
override val basicExpressionCheckers: Set<FirBasicExpressionChecker>
|
||||
get() = setOf(
|
||||
ArrayEqualityCanBeReplacedWithEquals,
|
||||
RedundantSingleExpressionStringTemplateChecker,
|
||||
EmptyRangeChecker,
|
||||
)
|
||||
|
||||
override val variableAssignmentCheckers: Set<FirVariableAssignmentChecker> = setOf(
|
||||
CanBeReplacedWithOperatorAssignmentChecker,
|
||||
)
|
||||
override val variableAssignmentCheckers: Set<FirVariableAssignmentChecker>
|
||||
get() = setOf(
|
||||
CanBeReplacedWithOperatorAssignmentChecker,
|
||||
)
|
||||
|
||||
override val qualifiedAccessCheckers: Set<FirQualifiedAccessChecker> = setOf(
|
||||
RedundantCallOfConversionMethod,
|
||||
UselessCallOnNotNullChecker,
|
||||
)
|
||||
override val qualifiedAccessCheckers: Set<FirQualifiedAccessChecker>
|
||||
get() = setOf(
|
||||
RedundantCallOfConversionMethod,
|
||||
UselessCallOnNotNullChecker,
|
||||
)
|
||||
}
|
||||
|
||||
+4
-3
@@ -10,7 +10,8 @@ import org.jetbrains.kotlin.fir.analysis.checkers.declaration.jvm.FirJvmExternal
|
||||
|
||||
// TODO: Move this to different, JVM-specific module?
|
||||
object JvmDeclarationCheckers : DeclarationCheckers() {
|
||||
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker> = setOf(
|
||||
FirJvmExternalDeclarationChecker,
|
||||
)
|
||||
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker>
|
||||
get() = setOf(
|
||||
FirJvmExternalDeclarationChecker,
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user