diff --git a/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinReadWriteAccessDetector.kt b/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinReadWriteAccessDetector.kt index c9eea40bc677..dcd38895a4b8 100644 --- a/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinReadWriteAccessDetector.kt +++ b/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinReadWriteAccessDetector.kt @@ -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)) {