FIR checker: make FirFunctionNameChecker a subclass of FirSimpleFunctionChecker

This commit is contained in:
Tianyu Geng
2021-03-30 13:31:36 -07:00
committed by Dmitriy Novozhilov
parent d7cae63cb0
commit 3f4fa7eb98
2 changed files with 7 additions and 5 deletions
@@ -12,17 +12,16 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.declarations.FirFunction
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
import org.jetbrains.kotlin.name.SpecialNames
object FirFunctionNameChecker : FirFunctionChecker() {
override fun check(declaration: FirFunction<*>, context: CheckerContext, reporter: DiagnosticReporter) {
object FirFunctionNameChecker : FirSimpleFunctionChecker() {
override fun check(declaration: FirSimpleFunction, context: CheckerContext, reporter: DiagnosticReporter) {
val source = declaration.source
if (source == null || source.kind is FirFakeSourceElementKind) return
val containingDeclaration = context.containingDeclarations.lastOrNull()
val isNonLocal = containingDeclaration is FirFile || containingDeclaration is FirClass<*>
if (declaration is FirSimpleFunction && declaration.name == SpecialNames.NO_NAME_PROVIDED && isNonLocal) {
if (declaration.name == SpecialNames.NO_NAME_PROVIDED && isNonLocal) {
reporter.reportOn(source, FirErrors.FUNCTION_DECLARATION_WITH_NO_NAME, context)
}
}
@@ -29,10 +29,13 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
override val functionCheckers: Set<FirFunctionChecker> = setOf(
FirContractChecker,
FirFunctionNameChecker,
FirFunctionParameterChecker,
)
override val simpleFunctionCheckers: Set<FirSimpleFunctionChecker> = setOf(
FirFunctionNameChecker
)
override val propertyCheckers: Set<FirPropertyChecker> = setOf(
FirInapplicableLateinitChecker,
FirDestructuringDeclarationChecker,