void (@NotNull PsiAssignmentExpression expression) { PsiExpression lhs = expression.getLExpression(); final PsiExpression rhs = expression.getRExpression(); if (isBackpointerReference(lhs) && rhs != null) { while (lhs instanceof PsiParenthesizedExpression) { lhs = ((PsiParenthesizedExpression)lhs).getExpression(); } final PsiReferenceExpression reference = (PsiReferenceExpression)lhs; assert reference != null; final PsiField field = (PsiField)reference.resolve(); final PsiJavaToken sign = expression.getOperationSign(); final IElementType tokenType = sign.getTokenType(); assert field != null; if (!field.hasModifierProperty(PsiModifier.STATIC)) { delegate(rhs, field, sign, tokenType, backPointerName); } else { visitElement(expression); } } else { visitElement(expression); } }