=== tests/cases/compiler/overloadsWithConstraints.ts === declare function f(x: T): T; >f : { (x: T): T; (x: T): T; }, Symbol(f, Decl(overloadsWithConstraints.ts, 0, 0), Decl(overloadsWithConstraints.ts, 0, 46)) >T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 0, 19)) >Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) >x : T, Symbol(x, Decl(overloadsWithConstraints.ts, 0, 37)) >T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 0, 19)) >T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 0, 19)) declare function f(x: T): T >f : { (x: T): T; (x: T): T; }, Symbol(f, Decl(overloadsWithConstraints.ts, 0, 0), Decl(overloadsWithConstraints.ts, 0, 46)) >T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 1, 19)) >String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) >x : T, Symbol(x, Decl(overloadsWithConstraints.ts, 1, 37)) >T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 1, 19)) >T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 1, 19)) var v = f(""); >v : string, Symbol(v, Decl(overloadsWithConstraints.ts, 3, 3)) >f("") : string >f : { (x: T): T; (x: T): T; }, Symbol(f, Decl(overloadsWithConstraints.ts, 0, 0), Decl(overloadsWithConstraints.ts, 0, 46)) >"" : string