diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt index a10ff664fe5..0041c506a63 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt @@ -316,8 +316,8 @@ public enum class ReferenceAccess { public fun JetExpression.readWriteAccess(): ReferenceAccess { var expression = getQualifiedExpressionForSelectorOrThis() - while (expression.parent is JetParenthesizedExpression) { - expression = expression.parent as JetParenthesizedExpression + while (expression.parent is JetParenthesizedExpression || expression.parent is JetAnnotatedExpression) { + expression = expression.parent as JetExpression } val assignment = expression.getAssignmentByLHS() diff --git a/idea/testData/findUsages/kotlin/variable/readAccess.0.kt b/idea/testData/findUsages/kotlin/variable/readAccess.0.kt index aec2493af77..d31ee33818b 100644 --- a/idea/testData/findUsages/kotlin/variable/readAccess.0.kt +++ b/idea/testData/findUsages/kotlin/variable/readAccess.0.kt @@ -3,11 +3,11 @@ // OPTIONS: skipWrite fun foo() { var v = 1 - v = 2 + (@X v) = 2 print(v) - ++v + ++ @X v v-- print(-v) v += 1 - v -= 1 + (v) -= 1 } diff --git a/idea/testData/findUsages/kotlin/variable/readAccess.results.txt b/idea/testData/findUsages/kotlin/variable/readAccess.results.txt index 03bb4ee12a0..7ea37e1679d 100644 --- a/idea/testData/findUsages/kotlin/variable/readAccess.results.txt +++ b/idea/testData/findUsages/kotlin/variable/readAccess.results.txt @@ -1,6 +1,6 @@ Value read (10: 12) print(-v) Value read (7: 11) print(v) Value write (11: 5) v += 1 -Value write (12: 5) v -= 1 -Value write (8: 7) ++v +Value write (12: 6) (v) -= 1 +Value write (8: 11) ++ @X v Value write (9: 5) v-- \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/variable/writeAccess.0.kt b/idea/testData/findUsages/kotlin/variable/writeAccess.0.kt index a4652acb3ff..41c8705f916 100644 --- a/idea/testData/findUsages/kotlin/variable/writeAccess.0.kt +++ b/idea/testData/findUsages/kotlin/variable/writeAccess.0.kt @@ -3,11 +3,11 @@ // OPTIONS: skipRead fun foo() { var v = 1 - v = 2 + (@X v) = 2 print(v) - ++v + ++ @X v v-- print(-v) v += 1 - v -= 1 + (v) -= 1 } diff --git a/idea/testData/findUsages/kotlin/variable/writeAccess.results.txt b/idea/testData/findUsages/kotlin/variable/writeAccess.results.txt index 4c1c35b7799..f4abeaff074 100644 --- a/idea/testData/findUsages/kotlin/variable/writeAccess.results.txt +++ b/idea/testData/findUsages/kotlin/variable/writeAccess.results.txt @@ -1,5 +1,5 @@ Value write (11: 5) v += 1 -Value write (12: 5) v -= 1 -Value write (6: 5) v = 2 -Value write (8: 7) ++v +Value write (12: 6) (v) -= 1 +Value write (6: 9) (@X v) = 2 +Value write (8: 11) ++ @X v Value write (9: 5) v-- \ No newline at end of file