innerTypeParameterShadowingOuterOne2.ts(7,9): error TS2454: Variable 'x' is used before being assigned.
innerTypeParameterShadowingOuterOne2.ts(12,9): error TS2454: Variable 'x' is used before being assigned.
innerTypeParameterShadowingOuterOne2.ts(19,9): error TS2454: Variable 'x' is used before being assigned.
innerTypeParameterShadowingOuterOne2.ts(24,9): error TS2454: Variable 'x' is used before being assigned.


==== innerTypeParameterShadowingOuterOne2.ts (4 errors) ====
    // inner type parameters shadow outer ones of the same name
    // no errors expected
    
    class C<T extends Date> {
        g<T extends Number>() {
            var x: T;
            x.toFixed();
            ~
!!! error TS2454: Variable 'x' is used before being assigned.
        }
    
        h() {
            var x: T;
            x.getDate();
            ~
!!! error TS2454: Variable 'x' is used before being assigned.
        }
    }
    
    class C2<T extends Date, U extends Date> {
        g<T extends Number, U extends Number>() {
            var x: U;
            x.toFixed();
            ~
!!! error TS2454: Variable 'x' is used before being assigned.
        }
    
        h() {
            var x: U;
            x.getDate();
            ~
!!! error TS2454: Variable 'x' is used before being assigned.
        }
    }
    //class C2<T extends Date, U extends T> {
    //    g<T extends Number, U extends T>() {
    //        var x: U;
    //        x.toFixed();
    //    }
    
    //    h() {
    //        var x: U;
    //        x.getDate();
    //    }
    //}