anchor.diff:  
     @override
     DecoratedType visitIfStatement(IfStatement node) {
  -    _handleAssignment(node.condition, destinationType: _notNullType);
  +    _handleAssignment(node.condition, destinationType: _nonNullableBoolType);
       NullabilityNode trueGuard;
       NullabilityNode falseGuard;
       if (identical(_conditionInfo?.condition, node.condition)) {
  
positive.code:   DecoratedType visitWhileStatement(WhileStatement node) {
      // Note: we do not create guards. A null check here is *very* unlikely to be
      // unnecessary after analysis.
      _handleAssignment(node.condition, destinationType: _notNullType);
      _postDominatedLocals.doScoped(action: () => node.body.accept(this));
      return null;
    }
  
negative.code:   @override
    DecoratedType visitDoStatement(DoStatement node) {
      node.body.accept(this);
      _handleAssignment(node.condition, destinationType: _nonNullableBoolType);
      return null;
    }
  
  