Drop state from FirInapplicableLateinitChecker

This commit is contained in:
Mikhail Glukhikh
2021-04-20 16:07:15 +03:00
parent e0c8a6658b
commit 9bc3404833
2 changed files with 5 additions and 23 deletions
@@ -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<ConeKotlinType>? = null
private fun getPrimitiveTypes(context: CheckerContext) = primitives ?: mutableSetOf<ConeKotlinType>().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)
@@ -45,7 +45,7 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
override val propertyCheckers: Set<FirPropertyChecker>
get() = setOf(
FirInapplicableLateinitChecker(),
FirInapplicableLateinitChecker,
FirDestructuringDeclarationChecker,
FirConstPropertyChecker,
FirPropertyAccessorChecker,