=== tests/cases/compiler/overloadOnConstConstraintChecks2.ts === class A {} >A : Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) class B extends A {} >B : Symbol(B, Decl(overloadOnConstConstraintChecks2.ts, 0, 10)) >A : Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) class C extends A { >C : Symbol(C, Decl(overloadOnConstConstraintChecks2.ts, 1, 20)) >A : Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) public foo() { } >foo : Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 2, 19)) } function foo(name: 'hi'): B; >foo : Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) >name : Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 5, 13)) >B : Symbol(B, Decl(overloadOnConstConstraintChecks2.ts, 0, 10)) function foo(name: 'bye'): C; >foo : Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) >name : Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 6, 13)) >C : Symbol(C, Decl(overloadOnConstConstraintChecks2.ts, 1, 20)) function foo(name: string): A; >foo : Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) >name : Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 7, 13)) >A : Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) function foo(name: any): A { >foo : Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) >name : Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 8, 13)) >A : Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) return null; }