anchor.diff:    /// corresponding to it.  Otherwise `null`.
     ExpressionInfo<Variable, Type> _expressionInfo;
   
  -  /// The most recently visited expression which was a variable reference, or
  -  /// `null` if no expression has been visited that was a variable reference.
  -  Expression _expressionWithVariable;
  -
  -  /// If [_expressionVariable] is not `null`, the variable corresponding to it.
  -  /// Otherwise `null`.
  -  Variable _expressionVariable;
  -
     int _functionNestingLevel = 0;
   
     final AssignedVariables<Node, Variable> _assignedVariables;
  
positive.code:   /// The type of the expression on the LHS of `==` or `!=`.
    final Type _leftOperandType;
  
    /// If the LHS of `==` or `!=` is a variable reference, the variable.
    /// Otherwise `null`.
    final Variable _leftOperandVariable;
  
    _EqualityOpContext(ExpressionInfo<Variable, Type> conditionInfo,
        this._leftOperandType, this._leftOperandVariable)
        : super(conditionInfo);
  
    @override
  
negative.code: 
    @override
    void asExpression_end(Expression subExpression, Type type) {
      ExpressionInfo<Variable, Type> subExpressionInfo =
          _getExpressionInfo(subExpression);
      Variable variable;
      if (subExpressionInfo is _VariableReadInfo<Variable, Type>) {
        variable = subExpressionInfo._variable;
      } else {
        return;
      }
      _current = _current.tryPromoteForTypeCast(typeOperations, variable, type);
    }
  
  