From 9bc3404833d3089f586e2cdb84d701066ed9e216 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 20 Apr 2021 16:07:15 +0300 Subject: [PATCH] Drop state from FirInapplicableLateinitChecker --- .../FirInapplicableLateinitChecker.kt | 26 +++---------------- .../fir/checkers/CommonDeclarationCheckers.kt | 2 +- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInapplicableLateinitChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInapplicableLateinitChecker.kt index a25f80e94b5..a05c55bd9da 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInapplicableLateinitChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInapplicableLateinitChecker.kt @@ -13,28 +13,10 @@ import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter import org.jetbrains.kotlin.fir.declarations.isLateInit -import org.jetbrains.kotlin.fir.types.ConeKotlinType -import org.jetbrains.kotlin.fir.types.ConeTypeParameterType -import org.jetbrains.kotlin.fir.types.coneType -import org.jetbrains.kotlin.fir.types.isNullable - -class FirInapplicableLateinitChecker : FirPropertyChecker() { - var primitives: Set? = null - - private fun getPrimitiveTypes(context: CheckerContext) = primitives ?: mutableSetOf().apply { - with(context.session.builtinTypes) { - add(intType.coneType) - add(booleanType.coneType) - add(charType.coneType) - add(shortType.coneType) - add(byteType.coneType) - add(longType.coneType) - add(doubleType.coneType) - add(floatType.coneType) - } - primitives = this - } +import org.jetbrains.kotlin.fir.types.* +import org.jetbrains.kotlin.name.StandardClassIds +object FirInapplicableLateinitChecker : FirPropertyChecker() { override fun check(declaration: FirProperty, context: CheckerContext, reporter: DiagnosticReporter) { if (!declaration.isLateInit) { return @@ -56,7 +38,7 @@ class FirInapplicableLateinitChecker : FirPropertyChecker() { declaration.isNullable() -> reporter.reportOn(declaration.source, "is not allowed on properties of a type with nullable upper bound", context) - declaration.returnTypeRef.coneType in getPrimitiveTypes(context) -> if (declaration.isLocal) { + declaration.returnTypeRef.coneType.classId in StandardClassIds.primitiveTypes -> if (declaration.isLocal) { reporter.reportOn(declaration.source, "is not allowed on local variables of primitive types", context) } else { reporter.reportOn(declaration.source, "is not allowed on properties of primitive types", context) diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/checkers/CommonDeclarationCheckers.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/checkers/CommonDeclarationCheckers.kt index a4d6af67955..e8d32102271 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/checkers/CommonDeclarationCheckers.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/checkers/CommonDeclarationCheckers.kt @@ -45,7 +45,7 @@ object CommonDeclarationCheckers : DeclarationCheckers() { override val propertyCheckers: Set get() = setOf( - FirInapplicableLateinitChecker(), + FirInapplicableLateinitChecker, FirDestructuringDeclarationChecker, FirConstPropertyChecker, FirPropertyAccessorChecker,