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:   @override
    void isExpression_end(Expression isExpression, Expression subExpression,
        bool isNot, Type type) {
      Variable subExpressionVariable = _getExpressionVariable(subExpression);
      if (subExpressionVariable != null) {
        ExpressionInfo<Variable, Type> expressionInfo = _current
            .tryPromoteForTypeCheck(typeOperations, subExpressionVariable, type);
        _storeExpressionInfo(isExpression,
            isNot ? ExpressionInfo.invert(expressionInfo) : expressionInfo);
      }
  
negative.code:     _current = _current.split();
      _stack.add(new _NullAwareAccessContext<Variable, Type>(_current));
      if (target != null) {
        ExpressionInfo<Variable, Type> targetInfo = _getExpressionInfo(target);
        if (targetInfo is _VariableReadInfo<Variable, Type>) {
          _current = _current
              .tryMarkNonNullable(typeOperations, targetInfo._variable)
              .ifTrue;
        }
      }
    }
  