anchor.diff:      _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;
  +      Variable targetVariable = _getExpressionVariable(target);
  +      if (targetVariable != null) {
  +        _current =
  +            _current.tryMarkNonNullable(typeOperations, targetVariable).ifTrue;
         }
       }
     }
  
positive.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);
    }
  
  
negative.code:     print('  current: $_current');
      print('  expressionWithInfo: $_expressionWithInfo');
      print('  expressionInfo: $_expressionInfo');
      print('  expressionWithVariable: $_expressionWithVariable');
      print('  expressionVariable: $_expressionVariable');
      print('  stack:');
      for (_FlowContext stackEntry in _stack.reversed) {
        print('    $stackEntry');
  