Fix usage of readWriteAccess without resolve

^KTIJ-19777 fixed
This commit is contained in:
Ilya Kirillov
2021-09-30 00:19:23 +02:00
parent c1754ad427
commit c8c1ee2b5a
2 changed files with 13 additions and 9 deletions
@@ -31,12 +31,12 @@ val KtElement.mainReference: KtReference?
else -> references.firstIsInstanceOrNull()
}
fun KtExpression.readWriteAccess(useResolveForReadWrite: Boolean) =
readWriteAccessWithFullExpression(useResolveForReadWrite).first
fun KtExpression.readWriteAccessWithFullExpression(
useResolveForReadWrite: Boolean,
readWriteAccessWithFullExpressionByResolve: (KtBinaryExpression) -> Pair<ReferenceAccess, KtExpression>? = { null },
@Deprecated(
"Not for the IDE usage",
replaceWith = ReplaceWith("readWriteAccessWithFullExpression", "org.jetbrains.kotlin.idea.references")
)
fun KtExpression.readWriteAccessWithFullExpressionWithPossibleResolve(
readWriteAccessWithFullExpressionByResolve: (KtBinaryExpression) -> Pair<ReferenceAccess, KtExpression>?,
): Pair<ReferenceAccess, KtExpression> {
var expression = getQualifiedExpressionForSelectorOrThis()
loop@ while (true) {
@@ -52,7 +52,7 @@ fun KtExpression.readWriteAccessWithFullExpression(
KtTokens.EQ -> ReferenceAccess.WRITE to assignment
else -> {
(if (useResolveForReadWrite) readWriteAccessWithFullExpressionByResolve(assignment) else null)
readWriteAccessWithFullExpressionByResolve(assignment)
?: (ReferenceAccess.READ_WRITE to assignment)
}
}