=== tests/cases/compiler/overloadEquivalenceWithStatics.ts === class A1 { >A1 : A1, Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) >T : T, Symbol(T, Decl(overloadEquivalenceWithStatics.ts, 0, 9)) static B(v: A1): A1; // 1 >B : { (v: A1): A1; (v: S): A1; }, Symbol(A1.B, Decl(overloadEquivalenceWithStatics.ts, 0, 13), Decl(overloadEquivalenceWithStatics.ts, 1, 29), Decl(overloadEquivalenceWithStatics.ts, 2, 25)) >S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 1, 9)) >v : A1, Symbol(v, Decl(overloadEquivalenceWithStatics.ts, 1, 12)) >A1 : A1, Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) >S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 1, 9)) >A1 : A1, Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) >S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 1, 9)) static B(v: S): A1; // 2 : Error Duplicate signature >B : { (v: A1): A1; (v: S): A1; }, Symbol(A1.B, Decl(overloadEquivalenceWithStatics.ts, 0, 13), Decl(overloadEquivalenceWithStatics.ts, 1, 29), Decl(overloadEquivalenceWithStatics.ts, 2, 25)) >S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 2, 9)) >v : S, Symbol(v, Decl(overloadEquivalenceWithStatics.ts, 2, 12)) >S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 2, 9)) >A1 : A1, Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) >S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 2, 9)) static B(v: any): A1 { >B : { (v: A1): A1; (v: S): A1; }, Symbol(A1.B, Decl(overloadEquivalenceWithStatics.ts, 0, 13), Decl(overloadEquivalenceWithStatics.ts, 1, 29), Decl(overloadEquivalenceWithStatics.ts, 2, 25)) >S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 3, 9)) >v : any, Symbol(v, Decl(overloadEquivalenceWithStatics.ts, 3, 12)) >A1 : A1, Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) >S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 3, 9)) return null; >null : null } }