genericTypeReferencesRequireTypeArgs.ts(2,15): error TS2322: Type 'null' is not assignable to type 'T'.
  'T' could be instantiated with an arbitrary type which could be unrelated to 'null'.
genericTypeReferencesRequireTypeArgs.ts(7,9): error TS2314: Generic type 'C<T>' requires 1 type argument(s).
genericTypeReferencesRequireTypeArgs.ts(8,9): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
genericTypeReferencesRequireTypeArgs.ts(9,11): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
genericTypeReferencesRequireTypeArgs.ts(10,11): error TS2314: Generic type 'C<T>' requires 1 type argument(s).


==== genericTypeReferencesRequireTypeArgs.ts (5 errors) ====
    class C<T> {
       foo(): T { return null }
                  ~~~~~~
!!! error TS2322: Type 'null' is not assignable to type 'T'.
!!! error TS2322:   'T' could be instantiated with an arbitrary type which could be unrelated to 'null'.
    }
    interface I<T> {
       bar(): T;
    }
    var c1: C; // error
            ~
!!! error TS2314: Generic type 'C<T>' requires 1 type argument(s).
    var i1: I; // error
            ~
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
    var c2: C<I>; // should be an error
              ~
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
    var i2: I<C>; // should be an error
              ~
!!! error TS2314: Generic type 'C<T>' requires 1 type argument(s).
    