FIR checkers: reuse CheckerContext.containingFile & isTopLevel

This commit is contained in:
Mikhail Glukhikh
2023-01-09 18:05:19 +01:00
committed by teamcity
parent a60eab7b47
commit f0dbe1ad2d
9 changed files with 14 additions and 26 deletions
@@ -7,9 +7,9 @@ package org.jetbrains.kotlin.fir.analysis.native.checkers
import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.diagnostics.reportOn
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirBasicDeclarationChecker
import org.jetbrains.kotlin.fir.analysis.checkers.isTopLevel
import org.jetbrains.kotlin.fir.analysis.diagnostics.native.FirNativeErrors
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.impl.FirPrimaryConstructor
@@ -48,7 +48,7 @@ object FirNativeSharedImmutableChecker : FirBasicDeclarationChecker() {
if (declaration.source?.kind is KtFakeSourceElementKind) return
if (context.containingDeclarations.lastOrNull() !is FirFile) {
if (!context.isTopLevel) {
reporter.reportIfHasAnnotation(
declaration,
sharedImmutableClassId,
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirBasicDeclarationChecker
import org.jetbrains.kotlin.fir.analysis.checkers.isTopLevel
import org.jetbrains.kotlin.fir.analysis.diagnostics.native.FirNativeErrors
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.utils.hasBackingField
@@ -29,7 +30,7 @@ object FirNativeThreadLocalChecker : FirBasicDeclarationChecker() {
if (declaration.source?.kind is KtFakeSourceElementKind) return
if (context.containingDeclarations.lastOrNull() !is FirFile && !isObject) {
if (!context.isTopLevel && !isObject) {
reporter.reportIfHasAnnotation(declaration, threadLocalClassId, FirNativeErrors.INAPPLICABLE_THREAD_LOCAL_TOP_LEVEL, context)
}
}