[kotlin] delegate read/write access state to java when unclear

- don't create java detector on each call

KTIJ-30448

GitOrigin-RevId: 2e3343e0a18d96c82f78e6ab48d004b34c2ec169
This commit is contained in:
Anna Kozlova
2024-07-05 19:49:55 +00:00
committed by intellij-monorepo-bot
parent d74acd35ce
commit b821dcb2e9
@@ -18,7 +18,9 @@ class KotlinReadWriteAccessDetector : ReadWriteAccessDetector() {
val INSTANCE = KotlinReadWriteAccessDetector()
}
override fun isReadWriteAccessible(element: PsiElement) = element is KtVariableDeclaration || element is KtParameter || JavaReadWriteAccessDetector().isReadWriteAccessible(element)
private val javaReadWriteAccessDetector = JavaReadWriteAccessDetector()
override fun isReadWriteAccessible(element: PsiElement) = element is KtVariableDeclaration || element is KtParameter || javaReadWriteAccessDetector.isReadWriteAccessible(element)
override fun isDeclarationWriteAccess(element: PsiElement) = isReadWriteAccessible(element)
@@ -47,7 +49,7 @@ class KotlinReadWriteAccessDetector : ReadWriteAccessDetector() {
override fun getExpressionAccess(expression: PsiElement): Access {
if (expression !is KtExpression) { //TODO: there should be a more correct scheme of access type detection for cross-language references
return JavaReadWriteAccessDetector().getExpressionAccess(expression)
return javaReadWriteAccessDetector.getExpressionAccess(expression)
}
return when (expression.readWriteAccess(useResolveForReadWrite = true)) {