controlFlowNoImplicitAny.ts(101,9): error TS7034: Variable 'x' implicitly has type 'any' in some locations where its type cannot be determined.
controlFlowNoImplicitAny.ts(110,19): error TS7005: Variable 'x' implicitly has an 'any' type.
controlFlowNoImplicitAny.ts(116,9): error TS7034: Variable 'x' implicitly has type 'any' in some locations where its type cannot be determined.
controlFlowNoImplicitAny.ts(125,19): error TS7005: Variable 'x' implicitly has an 'any' type.


==== controlFlowNoImplicitAny.ts (4 errors) ====
    declare let cond: boolean;
    
    // CFA for 'let' with no type annotation and initializer
    function f1() {
        let x;
        if (cond) {
            x = 1;
        }
        if (cond) {
            x = "hello";
        }
        const y = x;  // string | number | undefined
    }
    
    // CFA for 'let' with no type annotation and 'undefined' initializer
    function f2() {
        let x = undefined;
        if (cond) {
            x = 1;
        }
        if (cond) {
            x = "hello";
        }
        const y = x;  // string | number | undefined
    }
    
    // CFA for 'let' with no type annotation and 'null' initializer
    function f3() {
        let x = null;
        if (cond) {
            x = 1;
        }
        if (cond) {
            x = "hello";
        }
        const y = x;  // string | number | null
    }
    
    // No CFA for 'let' with with type annotation
    function f4() {
        let x: any;
        if (cond) {
            x = 1;
        }
        if (cond) {
            x = "hello";
        }
        const y = x;  // any
    }
    
    // CFA for 'var' with no type annotation and initializer
    function f5() {
        var x;
        if (cond) {
            x = 1;
        }
        if (cond) {
            x = "hello";
        }
        const y = x;  // string | number | undefined
    }
    
    // CFA for 'var' with no type annotation and 'undefined' initializer
    function f6() {
        var x = undefined;
        if (cond) {
            x = 1;
        }
        if (cond) {
            x = "hello";
        }
        const y = x;  // string | number | undefined
    }
    
    // CFA for 'var' with no type annotation and 'null' initializer
    function f7() {
        var x = null;
        if (cond) {
            x = 1;
        }
        if (cond) {
            x = "hello";
        }
        const y = x;  // string | number | null
    }
    
    // No CFA for 'var' with with type annotation
    function f8() {
        var x: any;
        if (cond) {
            x = 1;
        }
        if (cond) {
            x = "hello";
        }
        const y = x;  // any
    }
    
    // No CFA for captured outer variables
    function f9() {
        let x;
            ~
!!! error TS7034: Variable 'x' implicitly has type 'any' in some locations where its type cannot be determined.
        if (cond) {
            x = 1;
        }
        if (cond) {
            x = "hello";
        }
        const y = x;  // string | number | undefined
        function f() {
            const z = x;  // any
                      ~
!!! error TS7005: Variable 'x' implicitly has an 'any' type.
        }
    }
    
    // No CFA for captured outer variables
    function f10() {
        let x;
            ~
!!! error TS7034: Variable 'x' implicitly has type 'any' in some locations where its type cannot be determined.
        if (cond) {
            x = 1;
        }
        if (cond) {
            x = "hello";
        }
        const y = x;  // string | number | undefined
        const f = () => {
            const z = x;  // any
                      ~
!!! error TS7005: Variable 'x' implicitly has an 'any' type.
        };
    }