tests/cases/compiler/orderMattersForSignatureGroupIdentity.ts(19,1): error TS2769: No overload matches this call.
  Overload 1 of 2, '(x: { s: string; }): string', gave the following error.
    Argument of type '{ s: string; n: number; }' is not assignable to parameter of type '{ s: string; }'.
      Object literal may only specify known properties, and 'n' does not exist in type '{ s: string; }'.
  Overload 2 of 2, '(x: { n: number; }): number', gave the following error.
    Argument of type '{ s: string; n: number; }' is not assignable to parameter of type '{ n: number; }'.
      Object literal may only specify known properties, and 's' does not exist in type '{ n: number; }'.
tests/cases/compiler/orderMattersForSignatureGroupIdentity.ts(22,5): error TS2403: Subsequent variable declarations must have the same type.  Variable 'w' must be of type 'A', but here has type 'C'.
tests/cases/compiler/orderMattersForSignatureGroupIdentity.ts(24,1): error TS2769: No overload matches this call.
  Overload 1 of 2, '(x: { s: string; }): string', gave the following error.
    Argument of type '{ s: string; n: number; }' is not assignable to parameter of type '{ s: string; }'.
      Object literal may only specify known properties, and 'n' does not exist in type '{ s: string; }'.
  Overload 2 of 2, '(x: { n: number; }): number', gave the following error.
    Argument of type '{ s: string; n: number; }' is not assignable to parameter of type '{ n: number; }'.
      Object literal may only specify known properties, and 's' does not exist in type '{ n: number; }'.


==== tests/cases/compiler/orderMattersForSignatureGroupIdentity.ts (3 errors) ====
    interface A {
        (x: { s: string }): string
        (x: { n: number }): number
    }
    
    interface B {
        (x: { s: string }): string
        (x: { n: number }): number
    }
    
    interface C {
        (x: { n: number }): number
        (x: { s: string }): string
    }
    
    var v: A;
    var v: B;
    
    v({ s: "", n: 0 }).toLowerCase();
    ~~~~~~~~~~~~~~~~~~
!!! error TS2769: No overload matches this call.
!!! error TS2769:   Overload 1 of 2, '(x: { s: string; }): string', gave the following error.
!!! error TS2769:     Argument of type '{ s: string; n: number; }' is not assignable to parameter of type '{ s: string; }'.
!!! error TS2769:       Object literal may only specify known properties, and 'n' does not exist in type '{ s: string; }'.
!!! error TS2769:   Overload 2 of 2, '(x: { n: number; }): number', gave the following error.
!!! error TS2769:     Argument of type '{ s: string; n: number; }' is not assignable to parameter of type '{ n: number; }'.
!!! error TS2769:       Object literal may only specify known properties, and 's' does not exist in type '{ n: number; }'.
    
    var w: A;
    var w: C;
        ~
!!! error TS2403: Subsequent variable declarations must have the same type.  Variable 'w' must be of type 'A', but here has type 'C'.
!!! related TS6203 tests/cases/compiler/orderMattersForSignatureGroupIdentity.ts:21:5: 'w' was also declared here.
    
    w({ s: "", n: 0 }).toLowerCase();
    ~~~~~~~~~~~~~~~~~~
!!! error TS2769: No overload matches this call.
!!! error TS2769:   Overload 1 of 2, '(x: { s: string; }): string', gave the following error.
!!! error TS2769:     Argument of type '{ s: string; n: number; }' is not assignable to parameter of type '{ s: string; }'.
!!! error TS2769:       Object literal may only specify known properties, and 'n' does not exist in type '{ s: string; }'.
!!! error TS2769:   Overload 2 of 2, '(x: { n: number; }): number', gave the following error.
!!! error TS2769:     Argument of type '{ s: string; n: number; }' is not assignable to parameter of type '{ n: number; }'.
!!! error TS2769:       Object literal may only specify known properties, and 's' does not exist in type '{ n: number; }'.