==== tests/cases/compiler/genericsWithDuplicateTypeParameters1.ts (10 errors) ====
    function f<x, x>() { }
               ~
!!! genericsWithDuplicateTypeParameters1.ts(1,12): error TS2000: Duplicate identifier 'x'.
    function f2<X, X>(a: X, b: X): X { return null; }
                ~
!!! genericsWithDuplicateTypeParameters1.ts(2,13): error TS2000: Duplicate identifier 'X'.
    class C<X, X> {
            ~
!!! genericsWithDuplicateTypeParameters1.ts(3,9): error TS2000: Duplicate identifier 'X'.
        public f<x, x>() {}
                    ~
!!! genericsWithDuplicateTypeParameters1.ts(4,17): error TS2000: Duplicate identifier 'x'.
        public f2<X, X>(a: X, b: X): X { return null; }
                     ~
!!! genericsWithDuplicateTypeParameters1.ts(5,18): error TS2000: Duplicate identifier 'X'.
    }
    
    interface I<X, X> {
                ~
!!! genericsWithDuplicateTypeParameters1.ts(8,13): error TS2000: Duplicate identifier 'X'.
        f<X, X>();
             ~
!!! genericsWithDuplicateTypeParameters1.ts(9,10): error TS2000: Duplicate identifier 'X'.
        f2<X, X>(a: X, b: X): X;
              ~
!!! genericsWithDuplicateTypeParameters1.ts(10,11): error TS2000: Duplicate identifier 'X'.
    }
    
    var m = {
        a: function f<X, X>() {},
                      ~
!!! genericsWithDuplicateTypeParameters1.ts(14,19): error TS2000: Duplicate identifier 'X'.
        b: function f2<X, X>(a: X, b: X): X { return null; }
                       ~
!!! genericsWithDuplicateTypeParameters1.ts(15,20): error TS2000: Duplicate identifier 'X'.
    }