=== tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterUsedAsTypeParameterConstraint3.ts === // Type parameters are in scope in their own and other type parameter lists // Object types //class C { // x: T; // y: U; // z: V; // foo(x: W): T { // var r: T; // return x; // } //} //class C2 { // x: T; // y: U; // z: V; // foo(x: W): T { // var r: T; // return x; // } //} interface I { >I : Symbol(I, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 0, 0)) >T : Symbol(T, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 23, 12)) >U : Symbol(U, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 23, 14)) >V : Symbol(V, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 23, 17)) x: T; >x : Symbol(x, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 23, 22)) >T : Symbol(T, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 23, 12)) y: U; >y : Symbol(y, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 24, 9)) >U : Symbol(U, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 23, 14)) z: V; >z : Symbol(z, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 25, 9)) >V : Symbol(V, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 23, 17)) foo(x: W): T; >foo : Symbol(foo, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 26, 9)) >W : Symbol(W, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 27, 8)) >V : Symbol(V, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 23, 17)) >x : Symbol(x, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 27, 21)) >W : Symbol(W, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 27, 8)) >T : Symbol(T, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 23, 12)) } interface I2 { >I2 : Symbol(I2, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 28, 1)) >V : Symbol(V, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 30, 13)) >T : Symbol(T, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 30, 15)) >U : Symbol(U, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 30, 18)) x: T; >x : Symbol(x, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 30, 23)) >T : Symbol(T, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 30, 15)) y: U; >y : Symbol(y, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 31, 9)) >U : Symbol(U, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 30, 18)) z: V; >z : Symbol(z, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 32, 9)) >V : Symbol(V, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 30, 13)) foo(x: W): T; >foo : Symbol(foo, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 33, 9)) >W : Symbol(W, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 34, 8)) >V : Symbol(V, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 30, 13)) >x : Symbol(x, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 34, 21)) >W : Symbol(W, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 34, 8)) >T : Symbol(T, Decl(typeParameterUsedAsTypeParameterConstraint3.ts, 30, 15)) } //interface I < T, U extends T, V extends U > { // x: T; // y: U; // z: V; // foo(x: W): T; //} //interface I2 { // x: T; // y: U; // z: V; // foo(x: W): T; //}