FIR: use more precise checkers when possible

This commit is contained in:
Mikhail Glukhikh
2021-04-23 14:38:38 +03:00
parent 5c224ad17c
commit 683872ecbf
16 changed files with 121 additions and 69 deletions
@@ -15,11 +15,6 @@ object CommonExpressionCheckers : ExpressionCheckers() {
override val basicExpressionCheckers: Set<FirBasicExpressionChecker>
get() = setOf(
FirAnonymousFunctionChecker,
FirCheckNotNullCallChecker,
FirElvisExpressionChecker,
FirGetClassCallChecker,
FirSafeCallExpressionChecker,
)
override val qualifiedAccessCheckers: Set<FirQualifiedAccessChecker>
@@ -71,4 +66,29 @@ object CommonExpressionCheckers : ExpressionCheckers() {
get() = setOf(
FirForLoopChecker
)
override val checkNotNullCallCheckers: Set<FirCheckNotNullCallChecker>
get() = setOf(
FirNotNullAssertionChecker,
)
override val elvisExpressionCheckers: Set<FirElvisExpressionChecker>
get() = setOf(
FirUselessElvisChecker,
)
override val getClassCallCheckers: Set<FirGetClassCallChecker>
get() = setOf(
FirClassLiteralChecker,
)
override val safeCallExpressionCheckers: Set<FirSafeCallExpressionChecker>
get() = setOf(
FirUnnecessarySafeCallChecker,
)
override val anonymousFunctionAsExpressionCheckers: Set<FirAnonymousFunctionAsExpressionChecker>
get() = setOf(
FirAnonymousFunctionChecker,
)
}
@@ -7,10 +7,7 @@ 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.declaration.*
import org.jetbrains.kotlin.fir.analysis.checkers.extended.*
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
@@ -18,7 +15,6 @@ object ExtendedDeclarationCheckers : DeclarationCheckers() {
override val basicDeclarationCheckers: Set<FirBasicDeclarationChecker>
get() = setOf(
RedundantVisibilityModifierChecker,
RedundantReturnUnitType,
)
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker>
@@ -37,4 +33,9 @@ object ExtendedDeclarationCheckers : DeclarationCheckers() {
get() = setOf(
UnusedChecker,
)
override val simpleFunctionCheckers: Set<FirSimpleFunctionChecker>
get() = setOf(
RedundantReturnUnitType,
)
}
@@ -5,18 +5,13 @@
package org.jetbrains.kotlin.fir.checkers
import org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckers
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirBasicExpressionChecker
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirQualifiedAccessChecker
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirVariableAssignmentChecker
import org.jetbrains.kotlin.fir.analysis.checkers.expression.*
import org.jetbrains.kotlin.fir.analysis.checkers.extended.*
object ExtendedExpressionCheckers : ExpressionCheckers() {
override val basicExpressionCheckers: Set<FirBasicExpressionChecker>
get() = setOf(
ArrayEqualityCanBeReplacedWithEquals,
RedundantSingleExpressionStringTemplateChecker,
EmptyRangeChecker,
)
override val variableAssignmentCheckers: Set<FirVariableAssignmentChecker>
@@ -29,4 +24,10 @@ object ExtendedExpressionCheckers : ExpressionCheckers() {
RedundantCallOfConversionMethod,
UselessCallOnNotNullChecker,
)
override val functionCallCheckers: Set<FirFunctionCallChecker>
get() = setOf(
EmptyRangeChecker,
RedundantSingleExpressionStringTemplateChecker,
)
}