User: joe Date: 30 Dec 23 22:32 Revision: bd640fe2bd4cc3d2b09e22168e7158a113497ac5 Summary: Add field reference expressions twice in navigation visitor, if it is accessed for reading and writing, to handle ordinals properly. Fixes #2192 TeamCity URL: http://ci.mcdev.io:80/viewModification.html?tab=vcsModificationFiles&modId=8932&personal=false Index: src/main/kotlin/platform/mixin/handlers/injectionPoint/FieldInjectionPoint.kt =================================================================== --- src/main/kotlin/platform/mixin/handlers/injectionPoint/FieldInjectionPoint.kt (revision b2747ed4f197e6eace84b79905b4f9d770696080) +++ src/main/kotlin/platform/mixin/handlers/injectionPoint/FieldInjectionPoint.kt (revision bd640fe2bd4cc3d2b09e22168e7158a113497ac5) @@ -152,10 +152,18 @@ } ?: return addResult(actualResult) + + // if an expression is accessed for reading *and* writing, add it twice to properly handle ordinals + if (opcode == -1 && + PsiUtil.isAccessedForReading(actualResult) && + PsiUtil.isAccessedForWriting(actualResult) + ) { + addResult(actualResult) - } - } - } - } + } + } + } + } + } super.visitReferenceExpression(expression) }