tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(3,17): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(4,25): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(5,23): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(6,14): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(7,20): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(9,26): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(10,34): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(11,31): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(12,22): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(16,12): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(17,21): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(18,19): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(22,9): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(23,17): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(24,12): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(25,20): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(26,19): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(30,12): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(31,21): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(35,12): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(36,32): error TS2300: Duplicate identifier 'x'.
tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts(37,18): error TS2300: Duplicate identifier 'x'.


==== tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts (22 errors) ====
    // Duplicate parameter names are always an error
    
    function foo(x, x) { }
                    ~
!!! error TS2300: Duplicate identifier 'x'.
    var f = function foo(x, x) { }
                            ~
!!! error TS2300: Duplicate identifier 'x'.
    var f2 = function (x, x) { }
                          ~
!!! error TS2300: Duplicate identifier 'x'.
    var f3 = (x, x) => { }
                 ~
!!! error TS2300: Duplicate identifier 'x'.
    var f4 = <T>(x: T, x: T) => { }
                       ~
!!! error TS2300: Duplicate identifier 'x'.
    
    function foo2(x: string, x: number) { }
                             ~
!!! error TS2300: Duplicate identifier 'x'.
    var f5 = function foo(x: string, x: number) { }
                                     ~
!!! error TS2300: Duplicate identifier 'x'.
    var f6 = function (x: string, x: number) { }
                                  ~
!!! error TS2300: Duplicate identifier 'x'.
    var f7 = (x: string, x: number) => { }
                         ~
!!! error TS2300: Duplicate identifier 'x'.
    var f8 = <T>(x: T, y: T) => { }
    
    class C {
        foo(x, x) { }
               ~
!!! error TS2300: Duplicate identifier 'x'.
        foo2(x: number, x: string) { }
                        ~
!!! error TS2300: Duplicate identifier 'x'.
        foo3<T>(x: T, x: T) { }
                      ~
!!! error TS2300: Duplicate identifier 'x'.
    }
    
    interface I {
        (x, x);
            ~
!!! error TS2300: Duplicate identifier 'x'.
        (x: string, x: number);
                    ~
!!! error TS2300: Duplicate identifier 'x'.
        foo(x, x);
               ~
!!! error TS2300: Duplicate identifier 'x'.
        foo(x: number, x: string);
                       ~
!!! error TS2300: Duplicate identifier 'x'.
        foo3<T>(x: T, x: T);
                      ~
!!! error TS2300: Duplicate identifier 'x'.
    }
    
    var a: {
        foo(x, x);
               ~
!!! error TS2300: Duplicate identifier 'x'.
        foo2(x: number, x: string);
                        ~
!!! error TS2300: Duplicate identifier 'x'.
    };
    
    var b = {
        foo(x, x) { },
               ~
!!! error TS2300: Duplicate identifier 'x'.
        a: function foo(x: number, x: string) { },
                                   ~
!!! error TS2300: Duplicate identifier 'x'.
        b: <T>(x: T, x: T) => { }
                     ~
!!! error TS2300: Duplicate identifier 'x'.
    }