[FIR] Make FirDeclaration an abstract class

This commit is contained in:
Dmitriy Novozhilov
2021-06-20 15:23:25 +03:00
parent b3e5c6e079
commit 1324e9223f
142 changed files with 997 additions and 758 deletions

View File

@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.plugin
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.DeclarationCheckers
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMemberDeclarationChecker
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirSimpleFunctionChecker
import org.jetbrains.kotlin.fir.analysis.extensions.FirAdditionalCheckersExtension
import org.jetbrains.kotlin.fir.declarations.FirPluginKey
import org.jetbrains.kotlin.fir.plugin.checkers.DummyNameChecker
@@ -17,6 +17,7 @@ class AllOpenAdditionalCheckers(session: FirSession) : FirAdditionalCheckersExte
get() = AllOpenPluginKey
override val declarationCheckers: DeclarationCheckers = object : DeclarationCheckers() {
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker> = setOf(DummyNameChecker)
override val simpleFunctionCheckers: Set<FirSimpleFunctionChecker>
get() = setOf(DummyNameChecker)
}
}

View File

@@ -6,16 +6,14 @@
package org.jetbrains.kotlin.fir.plugin.checkers
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMemberDeclarationChecker
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirSimpleFunctionChecker
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
object DummyNameChecker : FirMemberDeclarationChecker() {
override fun check(declaration: FirMemberDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) {
if (declaration !is FirSimpleFunction) return
object DummyNameChecker : FirSimpleFunctionChecker() {
override fun check(declaration: FirSimpleFunction, context: CheckerContext, reporter: DiagnosticReporter) {
if (declaration.name.asString() == "dummy") {
reporter.reportOn(declaration.source, FirErrors.SYNTAX, context)
}