[FIR] fix memory leak via static ConeClassLikeTypeImpl
ConeClassLikeLookupTagImpl.boundSymbol contains weak reference to FirSession
diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOperatorModifierChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOperatorModifierChecker.kt
index 27e09e0..5ee2872 100644
--- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOperatorModifierChecker.kt
+++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOperatorModifierChecker.kt
@@ -143,15 +143,16 @@
}
}
- private val kPropertyType = ConeClassLikeTypeImpl(
- ConeClassLikeLookupTagImpl(StandardClassIds.KProperty),
- arrayOf(ConeStarProjection),
- isNullable = false
- )
-
val isKProperty = full("second parameter must be of type KProperty<*> or its supertype") { ctx, function ->
val paramType = function.valueParameters[1].returnTypeRef.coneType
- paramType.isSupertypeOf(ctx.session.typeContext, kPropertyType)
+ paramType.isSupertypeOf(
+ ctx.session.typeContext,
+ ConeClassLikeTypeImpl(
+ ConeClassLikeLookupTagImpl(StandardClassIds.KProperty),
+ arrayOf(ConeStarProjection),
+ isNullable = false
+ )
+ )
}
}