anchor.diff:      node.condition?.accept(this);
       _overrideManager.enterScope();
       try {
  -      _propagateTrueState(node.condition);
         visitStatementInScope(node.body);
         node.updaters.accept(this);
       } finally {
  
positive.code:     bool thenIsAbrupt = _isAbruptTerminationStatement(thenStatement);
      bool elseIsAbrupt = _isAbruptTerminationStatement(elseStatement);
      if (elseIsAbrupt && !thenIsAbrupt) {
        _propagateTrueState(condition);
        _overrideManager.applyOverrides(thenOverrides);
      } else if (thenIsAbrupt && !elseIsAbrupt) {
        _propagateFalseState(condition);
        _overrideManager.applyOverrides(elseOverrides);
      } else if (!thenIsAbrupt && !elseIsAbrupt) {
        List<Map<VariableElement, DartType>> perBranchOverrides =
  
negative.code:       if (rightOperand != null) {
          _overrideManager.enterScope();
          try {
            rightOperand.accept(this);
          } finally {
            _overrideManager.exitScope();
  