[FIR] Add generator for checkers aliases and sets of checkers

This commit is contained in:
Dmitriy Novozhilov
2020-09-04 15:20:29 +03:00
parent 4de57fcac2
commit 67604dcb66
22 changed files with 592 additions and 175 deletions
@@ -13,9 +13,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.cfa.FirControlFlowChecker
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.*
object CommonDeclarationCheckers : DeclarationCheckers() {
override val fileCheckers: List<FirFileChecker> = listOf()
override val declarationCheckers: List<FirBasicDeclarationChecker> = listOf(
override val basicDeclarationCheckers: Set<FirBasicDeclarationChecker> = setOf(
FirAnnotationClassDeclarationChecker,
FirModifierChecker,
FirManyCompanionObjectsChecker,
@@ -26,7 +24,7 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
FirConflictingProjectionChecker,
)
override val memberDeclarationCheckers: List<FirMemberDeclarationChecker> = listOf(
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker> = setOf(
FirInfixFunctionDeclarationChecker,
FirExposedVisibilityDeclarationChecker,
FirCommonConstructorDelegationIssuesChecker,
@@ -42,20 +40,20 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
FirInapplicableLateinitChecker,
)
override val regularClassCheckers: List<FirRegularClassChecker> = listOf(
override val regularClassCheckers: Set<FirRegularClassChecker> = setOf(
FirTypeMismatchOnOverrideChecker,
)
override val constructorCheckers: List<FirConstructorChecker> = listOf(
override val constructorCheckers: Set<FirConstructorChecker> = setOf(
FirConstructorAllowedChecker,
)
override val controlFlowAnalyserCheckers: List<FirControlFlowChecker> = listOf(
override val controlFlowAnalyserCheckers: Set<FirControlFlowChecker> = setOf(
FirCallsEffectAnalyzer,
FirReturnsImpliesAnalyzer
FirReturnsImpliesAnalyzer,
)
override val variableAssignmentCfaBasedCheckers: List<AbstractFirPropertyInitializationChecker> = listOf(
FirPropertyInitializationAnalyzer
override val variableAssignmentCfaBasedCheckers: Set<AbstractFirPropertyInitializationChecker> = setOf(
FirPropertyInitializationAnalyzer,
)
}
@@ -9,8 +9,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirSealedClassCons
import org.jetbrains.kotlin.fir.analysis.checkers.expression.*
object CommonExpressionCheckers : ExpressionCheckers() {
override val expressionCheckers: List<FirBasicExpressionChecker> = listOf()
override val qualifiedAccessCheckers: List<FirQualifiedAccessChecker> = listOf(
override val qualifiedAccessCheckers: Set<FirQualifiedAccessChecker> = setOf(
FirSuperNotAvailableChecker,
FirNotASupertypeChecker,
FirSuperclassNotAccessibleFromInterfaceChecker,
@@ -21,5 +20,5 @@ object CommonExpressionCheckers : ExpressionCheckers() {
FirTypeArgumentsNotAllowedExpressionChecker,
FirSealedClassConstructorCallChecker,
)
override val functionCallCheckers: List<FirFunctionCallChecker> = listOf()
override val functionCallCheckers: Set<FirFunctionCallChecker> = setOf()
}
@@ -8,25 +8,29 @@ package org.jetbrains.kotlin.fir.checkers
import org.jetbrains.kotlin.fir.analysis.cfa.AbstractFirPropertyInitializationChecker
import org.jetbrains.kotlin.fir.analysis.checkers.cfa.FirControlFlowChecker
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.DeclarationCheckers
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirBasicDeclarationChecker
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirDeclarationChecker
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMemberDeclarationChecker
import org.jetbrains.kotlin.fir.analysis.checkers.extended.*
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
object ExtendedDeclarationCheckers : DeclarationCheckers() {
override val declarationCheckers = listOf(
override val basicDeclarationCheckers: Set<FirBasicDeclarationChecker> = setOf(
RedundantVisibilityModifierChecker,
RedundantReturnUnitType
RedundantReturnUnitType,
)
override val memberDeclarationCheckers = listOf(
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker> = setOf(
RedundantModalityModifierChecker,
RedundantExplicitTypeChecker,
RedundantSetterParameterTypeChecker
RedundantSetterParameterTypeChecker,
)
override val variableAssignmentCfaBasedCheckers: List<AbstractFirPropertyInitializationChecker> = listOf(
override val variableAssignmentCfaBasedCheckers: Set<AbstractFirPropertyInitializationChecker> = setOf(
CanBeValChecker,
)
override val controlFlowAnalyserCheckers: List<FirControlFlowChecker> = listOf(
UnusedChecker
override val controlFlowAnalyserCheckers: Set<FirControlFlowChecker> = setOf(
UnusedChecker,
)
}
@@ -12,18 +12,18 @@ import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirVariableAssignme
import org.jetbrains.kotlin.fir.analysis.checkers.extended.*
object ExtendedExpressionCheckers : ExpressionCheckers() {
override val expressionCheckers: List<FirBasicExpressionChecker> = listOf(
override val basicExpressionCheckers: Set<FirBasicExpressionChecker> = setOf(
ArrayEqualityCanBeReplacedWithEquals,
RedundantSingleExpressionStringTemplateChecker,
EmptyRangeChecker
EmptyRangeChecker,
)
override val variableAssignmentCheckers: List<FirVariableAssignmentChecker> = listOf(
CanBeReplacedWithOperatorAssignmentChecker
override val variableAssignmentCheckers: Set<FirVariableAssignmentChecker> = setOf(
CanBeReplacedWithOperatorAssignmentChecker,
)
override val qualifiedAccessCheckers: List<FirQualifiedAccessChecker> = listOf(
override val qualifiedAccessCheckers: Set<FirQualifiedAccessChecker> = setOf(
RedundantCallOfConversionMethod,
UselessCallOnNotNullChecker
UselessCallOnNotNullChecker,
)
}