=== tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/memberFunctionsWithPublicOverloads.ts === class C { >C : C public foo(x: number); >foo : { (x: number): any; (x: number, y: string): any; } >x : number public foo(x: number, y: string); >foo : { (x: number): any; (x: number, y: string): any; } >x : number >y : string public foo(x: any, y?: any) { } >foo : { (x: number): any; (x: number, y: string): any; } >x : any >y : any public bar(x: 'hi'); >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : 'hi' public bar(x: string); >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : string public bar(x: number, y: string); >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : number >y : string public bar(x: any, y?: any) { } >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : any >y : any public static foo(x: number); >foo : { (x: number): any; (x: number, y: string): any; } >x : number public static foo(x: number, y: string); >foo : { (x: number): any; (x: number, y: string): any; } >x : number >y : string public static foo(x: any, y?: any) { } >foo : { (x: number): any; (x: number, y: string): any; } >x : any >y : any public static bar(x: 'hi'); >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : 'hi' public static bar(x: string); >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : string public static bar(x: number, y: string); >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : number >y : string public static bar(x: any, y?: any) { } >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : any >y : any } class D { >D : D >T : T public foo(x: number); >foo : { (x: number): any; (x: T, y: T): any; } >x : number public foo(x: T, y: T); >foo : { (x: number): any; (x: T, y: T): any; } >x : T >T : T >y : T >T : T public foo(x: any, y?: any) { } >foo : { (x: number): any; (x: T, y: T): any; } >x : any >y : any public bar(x: 'hi'); >bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; } >x : 'hi' public bar(x: string); >bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; } >x : string public bar(x: T, y: T); >bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; } >x : T >T : T >y : T >T : T public bar(x: any, y?: any) { } >bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; } >x : any >y : any public static foo(x: number); >foo : { (x: number): any; (x: number, y: string): any; } >x : number public static foo(x: number, y: string); >foo : { (x: number): any; (x: number, y: string): any; } >x : number >y : string public static foo(x: any, y?: any) { } >foo : { (x: number): any; (x: number, y: string): any; } >x : any >y : any public static bar(x: 'hi'); >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : 'hi' public static bar(x: string); >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : string public static bar(x: number, y: string); >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : number >y : string public static bar(x: any, y?: any) { } >bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : any >y : any }