anchor.diff:  
       assertConstraint(
           [decoratedTypeAnnotation('int/*1*/').nullable],
  -        _mockOr(decoratedTypeAnnotation('int/*2*/').nullable,
  +        _either(decoratedTypeAnnotation('int/*2*/').nullable,
               checkExpression('(f())').nullCheck));
     }
   
  
positive.code:         decoratedTypeAnnotation('int/*1*/').nullable);
      assertConstraint(
          [decoratedTypeAnnotation('C<int/*3*/>/*4*/').nullable],
          _mockOr(decoratedTypeAnnotation('C<int/*1*/>/*2*/').nullable,
              checkExpression('c/*check*/').nullCheck));
    }
  
  
negative.code:     var nullable_c_t =
          decoratedTypeAnnotation('C<int>').typeArguments[0].nullable;
      var nullable_t = decoratedTypeAnnotation('T t').nullable;
      var nullable_c_t_or_nullable_t = _either(nullable_c_t, nullable_t);
      assertConstraint(
          [nullable_i],
          _either(nullable_c_t_or_nullable_t,
              checkExpression('i/*check*/').nullCheck));
    }
  
  