tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts(3,19): error TS2313: Type parameter 'T' has a circular constraint.
tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts(4,23): error TS2313: Type parameter 'U' has a circular constraint.
tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts(6,23): error TS2313: Type parameter 'T' has a circular constraint.
tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts(7,27): error TS2313: Type parameter 'U' has a circular constraint.
tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts(9,22): error TS2313: Type parameter 'T' has a circular constraint.
tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts(10,26): error TS2313: Type parameter 'U' has a circular constraint.
tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts(13,16): error TS2313: Type parameter 'T' has a circular constraint.
tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts(14,19): error TS2313: Type parameter 'U' has a circular constraint.
tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts(17,20): error TS2313: Type parameter 'T' has a circular constraint.
tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts(18,24): error TS2313: Type parameter 'U' has a circular constraint.


==== tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts (10 errors) ====
    // all of the below should be errors
    
    class C<T extends T> { } 
                      ~
!!! error TS2313: Type parameter 'T' has a circular constraint.
    class C2<T, U extends U> { } 
                          ~
!!! error TS2313: Type parameter 'U' has a circular constraint.
    
    interface I<T extends T> { }
                          ~
!!! error TS2313: Type parameter 'T' has a circular constraint.
    interface I2<T, U extends U> { }
                              ~
!!! error TS2313: Type parameter 'U' has a circular constraint.
    
    function f<T extends T>() { }
                         ~
!!! error TS2313: Type parameter 'T' has a circular constraint.
    function f2<T, U extends U>() { }
                             ~
!!! error TS2313: Type parameter 'U' has a circular constraint.
    
    var a: {
        <T extends T>(): void;
                   ~
!!! error TS2313: Type parameter 'T' has a circular constraint.
        <T, U extends U>(): void;
                      ~
!!! error TS2313: Type parameter 'U' has a circular constraint.
    }
    
    var b = <T extends T>() => { }
                       ~
!!! error TS2313: Type parameter 'T' has a circular constraint.
    var b2 = <T, U extends U>() => { }
                           ~
!!! error TS2313: Type parameter 'U' has a circular constraint.