tests/cases/compiler/typeParameterWithInvalidConstraintType.ts(1,19): error TS2313: Type parameter 'T' has a circular constraint.
tests/cases/compiler/typeParameterWithInvalidConstraintType.ts(4,19): error TS2339: Property 'foo' does not exist on type 'T'.
tests/cases/compiler/typeParameterWithInvalidConstraintType.ts(5,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
tests/cases/compiler/typeParameterWithInvalidConstraintType.ts(7,17): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type '{}' has no compatible call signatures.


==== tests/cases/compiler/typeParameterWithInvalidConstraintType.ts (4 errors) ====
    class A<T extends T> {
                      ~
!!! error TS2313: Type parameter 'T' has a circular constraint.
        foo() {
            var x: T;
            var a = x.foo();
                      ~~~
!!! error TS2339: Property 'foo' does not exist on type 'T'.
            var b = new x(123);
                    ~~~~~~~~~~
!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
            var c = x[1];
            var d = x();
                    ~~~
!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. Type '{}' has no compatible call signatures.
        }
    }