twoMergedInterfacesWithDifferingOverloads2.ts(11,9): error TS2454: Variable 'a' is used before being assigned.
twoMergedInterfacesWithDifferingOverloads2.ts(12,10): error TS2454: Variable 'a' is used before being assigned.
twoMergedInterfacesWithDifferingOverloads2.ts(13,10): error TS2454: Variable 'a' is used before being assigned.
twoMergedInterfacesWithDifferingOverloads2.ts(27,13): error TS2454: Variable 'a' is used before being assigned.
twoMergedInterfacesWithDifferingOverloads2.ts(28,14): error TS2454: Variable 'a' is used before being assigned.
twoMergedInterfacesWithDifferingOverloads2.ts(29,14): error TS2454: Variable 'a' is used before being assigned.
twoMergedInterfacesWithDifferingOverloads2.ts(30,14): error TS2454: Variable 'a' is used before being assigned.


==== twoMergedInterfacesWithDifferingOverloads2.ts (7 errors) ====
    interface A {
        (): string;
        (x: number): number;
    }
    
    interface A {
        (x: number, y: number): boolean;
    }
    
    var a: A;
    var r = a();
            ~
!!! error TS2454: Variable 'a' is used before being assigned.
    var r2 = a(1);
             ~
!!! error TS2454: Variable 'a' is used before being assigned.
    var r3 = a(1, 2);
             ~
!!! error TS2454: Variable 'a' is used before being assigned.
    
    namespace G {
        interface A<T> {
            (): string;
            (x: T): T;
        }
    
        interface A<T> {
            (x: T, y: number): T;
            <U>(x: U, y: T): U;
        }
    
        var a: A<boolean>;
        var r = a();
                ~
!!! error TS2454: Variable 'a' is used before being assigned.
        var r2 = a(true);
                 ~
!!! error TS2454: Variable 'a' is used before being assigned.
        var r3 = a(true, 2);
                 ~
!!! error TS2454: Variable 'a' is used before being assigned.
        var r4 = a(1, true);
                 ~
!!! error TS2454: Variable 'a' is used before being assigned.
    }