=== tests/cases/conformance/types/typeParameters/typeArgumentLists/wrappedAndRecursiveConstraints.ts === // no errors expected class C { >C : C >T : T >Date : Date constructor(public data: T) { } >data : T >T : T foo(x: U) { >foo : (x: U) => U >U : U >T : T >x : U >U : U return x; >x : U } } interface Foo extends Date { >Foo : Foo >Date : Date foo: string; >foo : string } var y: Foo = null; >y : Foo >Foo : Foo var c = new C(y); >c : C >new C(y) : C >C : typeof C >y : Foo var r = c.foo(y); >r : Foo >c.foo(y) : Foo >c.foo : (x: U) => U >c : C >foo : (x: U) => U >y : Foo