FIR checker: make FirMemberFunctionsChecker a function checker

There is no reason why this checker needs to be a class checker.
This commit is contained in:
Tianyu Geng
2021-12-08 14:39:43 -08:00
committed by TeamCityServer
parent d80b809a40
commit cd3827ca2e
2 changed files with 8 additions and 10 deletions
@@ -55,6 +55,7 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
FirOperatorModifierChecker, FirOperatorModifierChecker,
FirTailrecFunctionChecker, FirTailrecFunctionChecker,
FirTopLevelFunctionsChecker, FirTopLevelFunctionsChecker,
FirMemberFunctionsChecker,
) )
override val propertyCheckers: Set<FirPropertyChecker> override val propertyCheckers: Set<FirPropertyChecker>
@@ -88,7 +89,6 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
FirOpenMemberChecker, FirOpenMemberChecker,
FirClassVarianceChecker, FirClassVarianceChecker,
FirSealedSupertypeChecker, FirSealedSupertypeChecker,
FirMemberFunctionsChecker,
FirMemberPropertiesChecker, FirMemberPropertiesChecker,
FirImplementationMismatchChecker, FirImplementationMismatchChecker,
FirTypeParametersInObjectChecker, FirTypeParametersInObjectChecker,
@@ -7,26 +7,24 @@ package org.jetbrains.kotlin.fir.analysis.checkers.declaration
import org.jetbrains.kotlin.KtFakeSourceElementKind import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.diagnostics.reportOn
import org.jetbrains.kotlin.fir.analysis.checkers.contains import org.jetbrains.kotlin.fir.analysis.checkers.contains
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.getModifierList import org.jetbrains.kotlin.fir.analysis.checkers.getModifierList
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
import org.jetbrains.kotlin.diagnostics.reportOn
import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
import org.jetbrains.kotlin.fir.declarations.utils.* import org.jetbrains.kotlin.fir.declarations.utils.*
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.utils.addToStdlib.lastIsInstanceOrNull
// See old FE's [DeclarationsChecker] // See old FE's [DeclarationsChecker]
object FirMemberFunctionsChecker : FirClassChecker() { object FirMemberFunctionsChecker : FirSimpleFunctionChecker() {
override fun check(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) { override fun check(declaration: FirSimpleFunction, context: CheckerContext, reporter: DiagnosticReporter) {
for (member in declaration.declarations) { val containingDeclaration = context.containingDeclarations.lastIsInstanceOrNull<FirClass>() ?: return
if (member is FirSimpleFunction) { checkFunction(containingDeclaration, declaration, context, reporter)
checkFunction(declaration, member, context, reporter)
}
}
} }
private fun checkFunction( private fun checkFunction(