[FIR] Turn some checkers into classes to prevent memory leaks
This is temporary solution until those checkers will be fixed #KT-46058
This commit is contained in:
+1
-1
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.types.ConeTypeParameterType
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.fir.types.isNullable
|
||||
|
||||
object FirInapplicableLateinitChecker : FirPropertyChecker() {
|
||||
class FirInapplicableLateinitChecker : FirPropertyChecker() {
|
||||
var primitives: Set<ConeKotlinType>? = null
|
||||
|
||||
private fun getPrimitiveTypes(context: CheckerContext) = primitives ?: mutableSetOf<ConeKotlinType>().apply {
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
||||
|
||||
object FirInlineClassDeclarationChecker : FirRegularClassChecker() {
|
||||
class FirInlineClassDeclarationChecker : FirRegularClassChecker() {
|
||||
|
||||
private val reservedFunctionNames = setOf("box", "unbox", "equals", "hashCode")
|
||||
private val kotlinCloneableType = ClassId.fromString("kotlin/Cloneable").constructClassLikeType(emptyArray(), false)
|
||||
@@ -215,4 +215,4 @@ object FirInlineClassDeclarationChecker : FirRegularClassChecker() {
|
||||
return AbstractTypeChecker.isSubtypeOf(typeContext, coneType, kotlinCloneableType) ||
|
||||
AbstractTypeChecker.isSubtypeOf(typeContext, coneType, javaCloneableType)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.resolve.symbolProvider
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
|
||||
object FirMethodOfAnyImplementedInInterfaceChecker : FirRegularClassChecker(), FirDeclarationPresenter {
|
||||
class FirMethodOfAnyImplementedInInterfaceChecker : FirRegularClassChecker(), FirDeclarationPresenter {
|
||||
private var inspector: FirDeclarationInspector? = null
|
||||
|
||||
private fun getInspector(context: CheckerContext) = inspector ?: FirDeclarationInspector(this).apply {
|
||||
|
||||
+3
-3
@@ -45,7 +45,7 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
|
||||
|
||||
override val propertyCheckers: Set<FirPropertyChecker>
|
||||
get() = setOf(
|
||||
FirInapplicableLateinitChecker,
|
||||
FirInapplicableLateinitChecker(),
|
||||
FirDestructuringDeclarationChecker,
|
||||
FirConstPropertyChecker,
|
||||
FirPropertyAccessorChecker,
|
||||
@@ -72,14 +72,14 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
|
||||
FirInterfaceWithSuperclassChecker,
|
||||
FirLocalEntityNotAllowedChecker,
|
||||
FirManyCompanionObjectsChecker,
|
||||
FirMethodOfAnyImplementedInInterfaceChecker,
|
||||
FirMethodOfAnyImplementedInInterfaceChecker(),
|
||||
FirDataClassPrimaryConstructorChecker,
|
||||
FirPrimaryConstructorSuperTypeChecker,
|
||||
FirTypeParametersInObjectChecker,
|
||||
FirMemberFunctionsChecker,
|
||||
FirMemberPropertiesChecker,
|
||||
FirNestedClassChecker,
|
||||
FirInlineClassDeclarationChecker,
|
||||
FirInlineClassDeclarationChecker(),
|
||||
)
|
||||
|
||||
override val constructorCheckers: Set<FirConstructorChecker>
|
||||
|
||||
Reference in New Issue
Block a user