=== tests/cases/compiler/overloadedStaticMethodSpecialization.ts === class A { >A : A, Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) >T : T, Symbol(T, Decl(overloadedStaticMethodSpecialization.ts, 0, 8)) static B(v: A): A; >B : { (v: A): A; (v: S): A; }, Symbol(A.B, Decl(overloadedStaticMethodSpecialization.ts, 0, 12), Decl(overloadedStaticMethodSpecialization.ts, 1, 31), Decl(overloadedStaticMethodSpecialization.ts, 2, 28)) >S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 1, 13)) >v : A, Symbol(v, Decl(overloadedStaticMethodSpecialization.ts, 1, 16)) >A : A, Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) >S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 1, 13)) >A : A, Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) >S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 1, 13)) static B(v: S): A; >B : { (v: A): A; (v: S): A; }, Symbol(A.B, Decl(overloadedStaticMethodSpecialization.ts, 0, 12), Decl(overloadedStaticMethodSpecialization.ts, 1, 31), Decl(overloadedStaticMethodSpecialization.ts, 2, 28)) >S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 2, 13)) >v : S, Symbol(v, Decl(overloadedStaticMethodSpecialization.ts, 2, 16)) >S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 2, 13)) >A : A, Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) >S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 2, 13)) static B(v: any): A { >B : { (v: A): A; (v: S): A; }, Symbol(A.B, Decl(overloadedStaticMethodSpecialization.ts, 0, 12), Decl(overloadedStaticMethodSpecialization.ts, 1, 31), Decl(overloadedStaticMethodSpecialization.ts, 2, 28)) >S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 3, 13)) >v : any, Symbol(v, Decl(overloadedStaticMethodSpecialization.ts, 3, 16)) >A : A, Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) >S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 3, 13)) return null; >null : null } }