FIR checker: use the aliased checker when possible
This commit is contained in:
committed by
Mikhail Glukhikh
parent
03cb0c3cd1
commit
ec68ac36db
+2
-6
@@ -11,18 +11,14 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeAmbiguityError
|
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeAmbiguityError
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
|
||||||
object FirCommonConstructorDelegationIssuesChecker : FirMemberDeclarationChecker() {
|
object FirCommonConstructorDelegationIssuesChecker : FirRegularClassChecker() {
|
||||||
override fun check(declaration: FirMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirRegularClass) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
val cyclicConstructors = mutableSetOf<FirConstructor>()
|
val cyclicConstructors = mutableSetOf<FirConstructor>()
|
||||||
var hasPrimaryConstructor = false
|
var hasPrimaryConstructor = false
|
||||||
|
|||||||
+4
-5
@@ -11,12 +11,11 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
|||||||
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.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
|
||||||
|
|
||||||
object FirDelegationInInterfaceChecker : FirMemberDeclarationChecker() {
|
object FirDelegationInInterfaceChecker : FirRegularClassChecker() {
|
||||||
override fun check(declaration: FirMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirClass<*> || declaration.classKind != ClassKind.INTERFACE) {
|
if (declaration.classKind != ClassKind.INTERFACE) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -12,12 +12,11 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
|
|
||||||
object FirDelegationSuperCallInEnumConstructorChecker : FirMemberDeclarationChecker() {
|
object FirDelegationSuperCallInEnumConstructorChecker : FirRegularClassChecker() {
|
||||||
override fun check(declaration: FirMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirRegularClass || declaration.classKind != ClassKind.ENUM_CLASS) {
|
if (declaration.classKind != ClassKind.ENUM_CLASS) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-5
@@ -11,12 +11,11 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
|||||||
import org.jetbrains.kotlin.fir.analysis.checkers.findNonInterfaceSupertype
|
import org.jetbrains.kotlin.fir.analysis.checkers.findNonInterfaceSupertype
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
|
||||||
|
|
||||||
object FirEnumClassSimpleChecker : FirMemberDeclarationChecker() {
|
object FirEnumClassSimpleChecker : FirRegularClassChecker() {
|
||||||
override fun check(declaration: FirMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirClass<*> || declaration.classKind != ClassKind.ENUM_CLASS) {
|
if (declaration.classKind != ClassKind.ENUM_CLASS) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.types.ConeTypeParameterType
|
|||||||
import org.jetbrains.kotlin.fir.types.coneType
|
import org.jetbrains.kotlin.fir.types.coneType
|
||||||
import org.jetbrains.kotlin.fir.types.isNullable
|
import org.jetbrains.kotlin.fir.types.isNullable
|
||||||
|
|
||||||
object FirInapplicableLateinitChecker : FirMemberDeclarationChecker() {
|
object FirInapplicableLateinitChecker : FirPropertyChecker() {
|
||||||
var primitives: Set<ConeKotlinType>? = null
|
var primitives: Set<ConeKotlinType>? = null
|
||||||
|
|
||||||
private fun getPrimitiveTypes(context: CheckerContext) = primitives ?: mutableSetOf<ConeKotlinType>().apply {
|
private fun getPrimitiveTypes(context: CheckerContext) = primitives ?: mutableSetOf<ConeKotlinType>().apply {
|
||||||
@@ -33,8 +33,8 @@ object FirInapplicableLateinitChecker : FirMemberDeclarationChecker() {
|
|||||||
primitives = this
|
primitives = this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun check(declaration: FirMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirProperty, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirProperty || !declaration.isLateInit) {
|
if (!declaration.isLateInit) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-5
@@ -11,12 +11,11 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
|||||||
import org.jetbrains.kotlin.fir.analysis.checkers.findNonInterfaceSupertype
|
import org.jetbrains.kotlin.fir.analysis.checkers.findNonInterfaceSupertype
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
|
||||||
|
|
||||||
object FirInterfaceWithSuperclassChecker : FirMemberDeclarationChecker() {
|
object FirInterfaceWithSuperclassChecker : FirRegularClassChecker() {
|
||||||
override fun check(declaration: FirMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirClass<*> || declaration.classKind != ClassKind.INTERFACE) {
|
if (declaration.classKind != ClassKind.INTERFACE) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-6
@@ -11,21 +11,22 @@ import org.jetbrains.kotlin.descriptors.Visibilities
|
|||||||
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.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.isCompanion
|
import org.jetbrains.kotlin.fir.declarations.isCompanion
|
||||||
import org.jetbrains.kotlin.fir.declarations.visibility
|
import org.jetbrains.kotlin.fir.declarations.visibility
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
object FirLocalEntityNotAllowedChecker : FirBasicDeclarationChecker() {
|
object FirLocalEntityNotAllowedChecker : FirRegularClassChecker() {
|
||||||
override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirRegularClass || declaration.visibility != Visibilities.Local) {
|
if (declaration.visibility != Visibilities.Local) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
when {
|
when {
|
||||||
declaration.classKind == ClassKind.OBJECT && !declaration.isCompanion -> reporter.reportLocalObjectNotAllowed(declaration.source, declaration.name)
|
declaration.classKind == ClassKind.OBJECT && !declaration.isCompanion ->
|
||||||
declaration.classKind == ClassKind.INTERFACE -> reporter.reportLocalInterfaceNotAllowed(declaration.source, declaration.name)
|
reporter.reportLocalObjectNotAllowed(declaration.source, declaration.name)
|
||||||
|
declaration.classKind == ClassKind.INTERFACE ->
|
||||||
|
reporter.reportLocalInterfaceNotAllowed(declaration.source, declaration.name)
|
||||||
else -> {
|
else -> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-8
@@ -5,21 +5,15 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.analysis.checkers.declaration
|
package org.jetbrains.kotlin.fir.analysis.checkers.declaration
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
|
||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
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.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.isCompanion
|
import org.jetbrains.kotlin.fir.declarations.isCompanion
|
||||||
|
|
||||||
object FirManyCompanionObjectsChecker : FirBasicDeclarationChecker() {
|
object FirManyCompanionObjectsChecker : FirRegularClassChecker() {
|
||||||
override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirRegularClass) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var hasCompanion = false
|
var hasCompanion = false
|
||||||
|
|
||||||
for (it in declaration.declarations) {
|
for (it in declaration.declarations) {
|
||||||
|
|||||||
+2
-5
@@ -19,11 +19,8 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
|
|||||||
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
|
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
|
||||||
|
|
||||||
// See old FE's [DeclarationsChecker]
|
// See old FE's [DeclarationsChecker]
|
||||||
object FirMemberPropertyChecker : FirBasicDeclarationChecker() {
|
object FirMemberPropertyChecker : FirRegularClassChecker() {
|
||||||
override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirRegularClass) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
for (member in declaration.declarations) {
|
for (member in declaration.declarations) {
|
||||||
if (member is FirProperty) {
|
if (member is FirProperty) {
|
||||||
checkProperty(declaration, member, reporter)
|
checkProperty(declaration, member, reporter)
|
||||||
|
|||||||
+3
-3
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.declarations.*
|
|||||||
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
|
||||||
object FirMethodOfAnyImplementedInInterfaceChecker : FirMemberDeclarationChecker(), FirDeclarationPresenter {
|
object FirMethodOfAnyImplementedInInterfaceChecker : FirRegularClassChecker(), FirDeclarationPresenter {
|
||||||
private var inspector: FirDeclarationInspector? = null
|
private var inspector: FirDeclarationInspector? = null
|
||||||
|
|
||||||
private fun getInspector(context: CheckerContext) = inspector ?: FirDeclarationInspector(this).apply {
|
private fun getInspector(context: CheckerContext) = inspector ?: FirDeclarationInspector(this).apply {
|
||||||
@@ -56,8 +56,8 @@ object FirMethodOfAnyImplementedInInterfaceChecker : FirMemberDeclarationChecker
|
|||||||
append(')')
|
append(')')
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun check(declaration: FirMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirClass<*> || declaration.classKind != ClassKind.INTERFACE) {
|
if (declaration.classKind != ClassKind.INTERFACE) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -11,13 +11,12 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.isData
|
import org.jetbrains.kotlin.fir.declarations.isData
|
||||||
|
|
||||||
object FirPrimaryConstructorRequiredForDataClassChecker : FirMemberDeclarationChecker() {
|
object FirPrimaryConstructorRequiredForDataClassChecker : FirRegularClassChecker() {
|
||||||
override fun check(declaration: FirMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirRegularClass || declaration.classKind != ClassKind.CLASS || !declaration.isData) {
|
if (declaration.classKind != ClassKind.CLASS || !declaration.isData) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -12,12 +12,11 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
|
|
||||||
object FirSupertypeInitializedWithoutPrimaryConstructor : FirMemberDeclarationChecker() {
|
object FirSupertypeInitializedWithoutPrimaryConstructor : FirRegularClassChecker() {
|
||||||
override fun check(declaration: FirMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirRegularClass || declaration.classKind == ClassKind.INTERFACE) {
|
if (declaration.classKind == ClassKind.INTERFACE) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -10,12 +10,11 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
|||||||
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.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
|
|
||||||
object FirTypeParametersInObjectChecker : FirBasicDeclarationChecker() {
|
object FirTypeParametersInObjectChecker : FirRegularClassChecker() {
|
||||||
override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirRegularClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration !is FirRegularClass || declaration.classKind != ClassKind.OBJECT) {
|
if (declaration.classKind != ClassKind.OBJECT) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -10,7 +10,7 @@ import com.intellij.psi.tree.IElementType
|
|||||||
import org.jetbrains.kotlin.KtNodeTypes
|
import org.jetbrains.kotlin.KtNodeTypes
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.*
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirExpressionChecker
|
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirVariableAssignmentChecker
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.getChildren
|
import org.jetbrains.kotlin.fir.analysis.checkers.getChildren
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.lexer.KtTokens
|
|||||||
import org.jetbrains.kotlin.psi.KtBinaryExpression
|
import org.jetbrains.kotlin.psi.KtBinaryExpression
|
||||||
import org.jetbrains.kotlin.psi.KtNameReferenceExpression
|
import org.jetbrains.kotlin.psi.KtNameReferenceExpression
|
||||||
|
|
||||||
object CanBeReplacedWithOperatorAssignmentChecker : FirExpressionChecker<FirVariableAssignment>() {
|
object CanBeReplacedWithOperatorAssignmentChecker : FirVariableAssignmentChecker() {
|
||||||
override fun check(expression: FirVariableAssignment, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(expression: FirVariableAssignment, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
val lValue = expression.lValue
|
val lValue = expression.lValue
|
||||||
if (lValue !is FirResolvedNamedReference) return
|
if (lValue !is FirResolvedNamedReference) return
|
||||||
|
|||||||
+13
-13
@@ -17,9 +17,6 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
|
|||||||
FirAnnotationArgumentChecker,
|
FirAnnotationArgumentChecker,
|
||||||
FirAnnotationClassDeclarationChecker,
|
FirAnnotationClassDeclarationChecker,
|
||||||
FirModifierChecker,
|
FirModifierChecker,
|
||||||
FirManyCompanionObjectsChecker,
|
|
||||||
FirLocalEntityNotAllowedChecker,
|
|
||||||
FirTypeParametersInObjectChecker,
|
|
||||||
FirConflictsChecker,
|
FirConflictsChecker,
|
||||||
FirConstructorInInterfaceChecker,
|
FirConstructorInInterfaceChecker,
|
||||||
FirConflictingProjectionChecker,
|
FirConflictingProjectionChecker,
|
||||||
@@ -28,24 +25,27 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
|
|||||||
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker> = setOf(
|
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker> = setOf(
|
||||||
FirInfixFunctionDeclarationChecker,
|
FirInfixFunctionDeclarationChecker,
|
||||||
FirExposedVisibilityDeclarationChecker,
|
FirExposedVisibilityDeclarationChecker,
|
||||||
FirCommonConstructorDelegationIssuesChecker,
|
|
||||||
FirSupertypeInitializedWithoutPrimaryConstructor,
|
|
||||||
FirDelegationSuperCallInEnumConstructorChecker,
|
|
||||||
FirPrimaryConstructorRequiredForDataClassChecker,
|
|
||||||
FirMethodOfAnyImplementedInInterfaceChecker,
|
|
||||||
FirSupertypeInitializedInInterfaceChecker,
|
|
||||||
FirDelegationInInterfaceChecker,
|
|
||||||
FirInterfaceWithSuperclassChecker,
|
|
||||||
FirEnumClassSimpleChecker,
|
|
||||||
FirSealedSupertypeChecker,
|
FirSealedSupertypeChecker,
|
||||||
FirInapplicableLateinitChecker,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
override val propertyCheckers: Set<FirPropertyChecker> = setOf(
|
override val propertyCheckers: Set<FirPropertyChecker> = setOf(
|
||||||
|
FirInapplicableLateinitChecker,
|
||||||
FirDestructuringDeclarationInitializerChecker,
|
FirDestructuringDeclarationInitializerChecker,
|
||||||
)
|
)
|
||||||
|
|
||||||
override val regularClassCheckers: Set<FirRegularClassChecker> = setOf(
|
override val regularClassCheckers: Set<FirRegularClassChecker> = setOf(
|
||||||
|
FirCommonConstructorDelegationIssuesChecker,
|
||||||
|
FirDelegationSuperCallInEnumConstructorChecker,
|
||||||
|
FirDelegationInInterfaceChecker,
|
||||||
|
FirEnumClassSimpleChecker,
|
||||||
|
FirInterfaceWithSuperclassChecker,
|
||||||
|
FirLocalEntityNotAllowedChecker,
|
||||||
|
FirManyCompanionObjectsChecker,
|
||||||
|
FirMethodOfAnyImplementedInInterfaceChecker,
|
||||||
|
FirPrimaryConstructorRequiredForDataClassChecker,
|
||||||
|
FirSupertypeInitializedInInterfaceChecker,
|
||||||
|
FirSupertypeInitializedWithoutPrimaryConstructor,
|
||||||
|
FirTypeParametersInObjectChecker,
|
||||||
FirTypeMismatchOnOverrideChecker,
|
FirTypeMismatchOnOverrideChecker,
|
||||||
FirMemberPropertyChecker,
|
FirMemberPropertyChecker,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user