anchor.diff:      _flowAnalysis.doStatement_bodyBegin(node, _assignedVariables[node]);
       node.body.accept(this);
       _flowAnalysis.doStatement_conditionBegin();
  -    _handleAssignment(node.condition, destinationType: _nonNullableBoolType);
  +    _checkExpressionNotNull(node.condition);
       _flowAnalysis.doStatement_end(node.condition);
       return null;
     }
  
positive.code: 
    @override
    DecoratedType visitIfElement(IfElement node) {
      _handleAssignment(node.condition, destinationType: _nonNullableBoolType);
      NullabilityNode trueGuard;
      NullabilityNode falseGuard;
      if (identical(_conditionInfo?.condition, node.condition)) {
  
negative.code:       _variables.recordDecoratedExpressionType(node, expressionType);
        return expressionType;
      } else if (operatorType.isUserDefinableOperator) {
        _checkExpressionNotNull(node.leftOperand);
        var callee = node.staticElement;
        assert(!(callee is ClassMemberElement &&
            (callee.enclosingElement as ClassElement)
  