anchor.diff:    }
   
     void _resolveUserDefinable(BinaryExpressionImpl node) {
  -    Expression left = node.leftOperand;
  -    Expression right = node.rightOperand;
  -
  -    // TODO(scheglov) Do we need these checks for null?
  -    left?.accept(_resolver);
  +    var left = node.leftOperand;
  +    var right = node.rightOperand;
  +
  +    left.accept(_resolver);
   
       var operator = node.operator;
       _resolveUserDefinableElement(node, operator.lexeme);
  
positive.code:     InferenceContext.setType(left, _typeProvider.boolType);
      InferenceContext.setType(right, _typeProvider.boolType);
  
      // TODO(scheglov) Do we need these checks for null?
      left?.accept(_resolver);
      left = node.leftOperand;
  
      flow?.logicalBinaryOp_rightBegin(left, isAnd: false);
  
negative.code:       InferenceContext.setType(right, rightParam.type);
      }
  
      right.accept(_resolver);
  
      _resolveUserDefinableType(node);
    }
  