void (@NotNull GrAssignmentExpression assignment) { super.visitAssignmentExpression(assignment); if (assignment.isOperatorAssignment()) { return; } final GrExpression lhs = assignment.getLValue(); final GrExpression rhs = (GrExpression)PsiUtil.skipParentheses(assignment.getRValue(), false); if (!(rhs instanceof GrBinaryExpression binaryRhs)) { return; } if (binaryRhs.getRightOperand() == null) { return; } final IElementType expressionTokenType = binaryRhs.getOperationTokenType(); if (getTextForOperator(expressionTokenType) == null) { return; } if (JavaTokenType.EQEQ.equals(expressionTokenType)) { return; } if (ignoreLazyOperators) { if (GroovyTokenTypes.mLAND.equals(expressionTokenType) || GroovyTokenTypes.mLOR.equals(expressionTokenType)) { return; } } if (ignoreObscureOperators) { if (GroovyTokenTypes.mBXOR.equals(expressionTokenType) || GroovyTokenTypes.mMOD.equals(expressionTokenType)) { return; } } final GrExpression lOperand = binaryRhs.getLeftOperand(); if (SideEffectChecker.mayHaveSideEffects(lhs)) { return; } if (!EquivalenceChecker.expressionsAreEquivalent(lhs, lOperand)) { return; } registerError(assignment, assignment); }