From d2124e1ec66bcb41ee875a0f1689966dbf04acc9 Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Fri, 13 Aug 2021 16:42:39 +0300 Subject: [PATCH] [FIR] Add checkers support for FirBackingField --- .../src/org/jetbrains/kotlin/fir/checkers/generator/Main.kt | 1 + .../checkers/declaration/ComposedDeclarationCheckers.kt | 4 ++++ .../fir/analysis/checkers/declaration/DeclarationCheckers.kt | 2 ++ .../checkers/declaration/FirDeclarationCheckerAliases.kt | 2 ++ .../components/DeclarationCheckersDiagnosticComponent.kt | 4 ++++ 5 files changed, 13 insertions(+) diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Main.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Main.kt index 503cc41b05c..1b8aced049d 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Main.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Main.kt @@ -72,6 +72,7 @@ fun main(args: Array) { alias("TypeAliasChecker") alias("AnonymousFunctionChecker") alias("PropertyAccessorChecker") + alias("BackingFieldChecker") alias("ValueParameterChecker") alias("EnumEntryChecker") alias("AnonymousObjectChecker") diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/ComposedDeclarationCheckers.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/ComposedDeclarationCheckers.kt index 240ca0ae349..df52b713137 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/ComposedDeclarationCheckers.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/ComposedDeclarationCheckers.kt @@ -41,6 +41,8 @@ class ComposedDeclarationCheckers : DeclarationCheckers() { get() = _anonymousFunctionCheckers override val propertyAccessorCheckers: Set get() = _propertyAccessorCheckers + override val backingFieldCheckers: Set + get() = _backingFieldCheckers override val valueParameterCheckers: Set get() = _valueParameterCheckers override val enumEntryCheckers: Set @@ -67,6 +69,7 @@ class ComposedDeclarationCheckers : DeclarationCheckers() { private val _typeAliasCheckers: MutableSet = mutableSetOf() private val _anonymousFunctionCheckers: MutableSet = mutableSetOf() private val _propertyAccessorCheckers: MutableSet = mutableSetOf() + private val _backingFieldCheckers: MutableSet = mutableSetOf() private val _valueParameterCheckers: MutableSet = mutableSetOf() private val _enumEntryCheckers: MutableSet = mutableSetOf() private val _anonymousObjectCheckers: MutableSet = mutableSetOf() @@ -89,6 +92,7 @@ class ComposedDeclarationCheckers : DeclarationCheckers() { _typeAliasCheckers += checkers.typeAliasCheckers _anonymousFunctionCheckers += checkers.anonymousFunctionCheckers _propertyAccessorCheckers += checkers.propertyAccessorCheckers + _backingFieldCheckers += checkers.backingFieldCheckers _valueParameterCheckers += checkers.valueParameterCheckers _enumEntryCheckers += checkers.enumEntryCheckers _anonymousObjectCheckers += checkers.anonymousObjectCheckers diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/DeclarationCheckers.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/DeclarationCheckers.kt index e4522a8aa2a..d3fe426fb2f 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/DeclarationCheckers.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/DeclarationCheckers.kt @@ -32,6 +32,7 @@ abstract class DeclarationCheckers { open val typeAliasCheckers: Set = emptySet() open val anonymousFunctionCheckers: Set = emptySet() open val propertyAccessorCheckers: Set = emptySet() + open val backingFieldCheckers: Set = emptySet() open val valueParameterCheckers: Set = emptySet() open val enumEntryCheckers: Set = emptySet() open val anonymousObjectCheckers: Set = emptySet() @@ -53,6 +54,7 @@ abstract class DeclarationCheckers { @CheckersComponentInternal internal val allTypeAliasCheckers: Set by lazy { typeAliasCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers } @CheckersComponentInternal internal val allAnonymousFunctionCheckers: Set by lazy { anonymousFunctionCheckers + functionCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers } @CheckersComponentInternal internal val allPropertyAccessorCheckers: Set by lazy { propertyAccessorCheckers + functionCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers } + @CheckersComponentInternal internal val allBackingFieldCheckers: Set by lazy { backingFieldCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers } @CheckersComponentInternal internal val allValueParameterCheckers: Set by lazy { valueParameterCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers } @CheckersComponentInternal internal val allEnumEntryCheckers: Set by lazy { enumEntryCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers } @CheckersComponentInternal internal val allAnonymousObjectCheckers: Set by lazy { anonymousObjectCheckers + classCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers } diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt index 84248e43c7c..07c21c26057 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject +import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirDeclaration @@ -41,6 +42,7 @@ typealias FirAnnotatedDeclarationChecker = FirDeclarationChecker typealias FirAnonymousFunctionChecker = FirDeclarationChecker typealias FirPropertyAccessorChecker = FirDeclarationChecker +typealias FirBackingFieldChecker = FirDeclarationChecker typealias FirValueParameterChecker = FirDeclarationChecker typealias FirEnumEntryChecker = FirDeclarationChecker typealias FirAnonymousObjectChecker = FirDeclarationChecker diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/DeclarationCheckersDiagnosticComponent.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/DeclarationCheckersDiagnosticComponent.kt index d64ae4b4330..8d54187f379 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/DeclarationCheckersDiagnosticComponent.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/DeclarationCheckersDiagnosticComponent.kt @@ -57,6 +57,10 @@ class DeclarationCheckersDiagnosticComponent( checkers.allPropertyAccessorCheckers.check(propertyAccessor, data, reporter) } + override fun visitBackingField(backingField: FirBackingField, data: CheckerContext) { + checkers.allBackingFieldCheckers.check(backingField, data, reporter) + } + override fun visitValueParameter(valueParameter: FirValueParameter, data: CheckerContext) { checkers.allValueParameterCheckers.check(valueParameter, data, reporter) }