[FIR] Add checkers support for FirBackingField

This commit is contained in:
Nikolay Lunyak
2021-08-13 16:42:39 +03:00
committed by TeamCityServer
parent 7a522ade15
commit d2124e1ec6
5 changed files with 13 additions and 0 deletions
@@ -72,6 +72,7 @@ fun main(args: Array<String>) {
alias<FirTypeAlias>("TypeAliasChecker")
alias<FirAnonymousFunction>("AnonymousFunctionChecker")
alias<FirPropertyAccessor>("PropertyAccessorChecker")
alias<FirBackingField>("BackingFieldChecker")
alias<FirValueParameter>("ValueParameterChecker")
alias<FirEnumEntry>("EnumEntryChecker")
alias<FirAnonymousObject>("AnonymousObjectChecker")
@@ -41,6 +41,8 @@ class ComposedDeclarationCheckers : DeclarationCheckers() {
get() = _anonymousFunctionCheckers
override val propertyAccessorCheckers: Set<FirPropertyAccessorChecker>
get() = _propertyAccessorCheckers
override val backingFieldCheckers: Set<FirBackingFieldChecker>
get() = _backingFieldCheckers
override val valueParameterCheckers: Set<FirValueParameterChecker>
get() = _valueParameterCheckers
override val enumEntryCheckers: Set<FirEnumEntryChecker>
@@ -67,6 +69,7 @@ class ComposedDeclarationCheckers : DeclarationCheckers() {
private val _typeAliasCheckers: MutableSet<FirTypeAliasChecker> = mutableSetOf()
private val _anonymousFunctionCheckers: MutableSet<FirAnonymousFunctionChecker> = mutableSetOf()
private val _propertyAccessorCheckers: MutableSet<FirPropertyAccessorChecker> = mutableSetOf()
private val _backingFieldCheckers: MutableSet<FirBackingFieldChecker> = mutableSetOf()
private val _valueParameterCheckers: MutableSet<FirValueParameterChecker> = mutableSetOf()
private val _enumEntryCheckers: MutableSet<FirEnumEntryChecker> = mutableSetOf()
private val _anonymousObjectCheckers: MutableSet<FirAnonymousObjectChecker> = 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
@@ -32,6 +32,7 @@ abstract class DeclarationCheckers {
open val typeAliasCheckers: Set<FirTypeAliasChecker> = emptySet()
open val anonymousFunctionCheckers: Set<FirAnonymousFunctionChecker> = emptySet()
open val propertyAccessorCheckers: Set<FirPropertyAccessorChecker> = emptySet()
open val backingFieldCheckers: Set<FirBackingFieldChecker> = emptySet()
open val valueParameterCheckers: Set<FirValueParameterChecker> = emptySet()
open val enumEntryCheckers: Set<FirEnumEntryChecker> = emptySet()
open val anonymousObjectCheckers: Set<FirAnonymousObjectChecker> = emptySet()
@@ -53,6 +54,7 @@ abstract class DeclarationCheckers {
@CheckersComponentInternal internal val allTypeAliasCheckers: Set<FirTypeAliasChecker> by lazy { typeAliasCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers }
@CheckersComponentInternal internal val allAnonymousFunctionCheckers: Set<FirAnonymousFunctionChecker> by lazy { anonymousFunctionCheckers + functionCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers }
@CheckersComponentInternal internal val allPropertyAccessorCheckers: Set<FirPropertyAccessorChecker> by lazy { propertyAccessorCheckers + functionCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers }
@CheckersComponentInternal internal val allBackingFieldCheckers: Set<FirBackingFieldChecker> by lazy { backingFieldCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers }
@CheckersComponentInternal internal val allValueParameterCheckers: Set<FirValueParameterChecker> by lazy { valueParameterCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers }
@CheckersComponentInternal internal val allEnumEntryCheckers: Set<FirEnumEntryChecker> by lazy { enumEntryCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers }
@CheckersComponentInternal internal val allAnonymousObjectCheckers: Set<FirAnonymousObjectChecker> by lazy { anonymousObjectCheckers + classCheckers + annotatedDeclarationCheckers + basicDeclarationCheckers }
@@ -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<FirAnnotatedDec
typealias FirTypeAliasChecker = FirDeclarationChecker<FirTypeAlias>
typealias FirAnonymousFunctionChecker = FirDeclarationChecker<FirAnonymousFunction>
typealias FirPropertyAccessorChecker = FirDeclarationChecker<FirPropertyAccessor>
typealias FirBackingFieldChecker = FirDeclarationChecker<FirBackingField>
typealias FirValueParameterChecker = FirDeclarationChecker<FirValueParameter>
typealias FirEnumEntryChecker = FirDeclarationChecker<FirEnumEntry>
typealias FirAnonymousObjectChecker = FirDeclarationChecker<FirAnonymousObject>
@@ -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)
}