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,
FirTailrecFunctionChecker,
FirTopLevelFunctionsChecker,
FirMemberFunctionsChecker,
)
override val propertyCheckers: Set<FirPropertyChecker>
@@ -88,7 +89,6 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
FirOpenMemberChecker,
FirClassVarianceChecker,
FirSealedSupertypeChecker,
FirMemberFunctionsChecker,
FirMemberPropertiesChecker,
FirImplementationMismatchChecker,
FirTypeParametersInObjectChecker,
@@ -7,26 +7,24 @@ package org.jetbrains.kotlin.fir.analysis.checkers.declaration
import org.jetbrains.kotlin.KtFakeSourceElementKind
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.context.CheckerContext
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.diagnostics.reportOn
import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
import org.jetbrains.kotlin.fir.declarations.utils.*
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.utils.addToStdlib.lastIsInstanceOrNull
// See old FE's [DeclarationsChecker]
object FirMemberFunctionsChecker : FirClassChecker() {
override fun check(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) {
for (member in declaration.declarations) {
if (member is FirSimpleFunction) {
checkFunction(declaration, member, context, reporter)
}
}
object FirMemberFunctionsChecker : FirSimpleFunctionChecker() {
override fun check(declaration: FirSimpleFunction, context: CheckerContext, reporter: DiagnosticReporter) {
val containingDeclaration = context.containingDeclarations.lastIsInstanceOrNull<FirClass>() ?: return
checkFunction(containingDeclaration, declaration, context, reporter)
}
private fun checkFunction(