controlFlowForStatement.ts(29,14): error TS2873: This kind of expression is always falsy.
controlFlowForStatement.ts(29,50): error TS2873: This kind of expression is always falsy.


==== controlFlowForStatement.ts (2 errors) ====
    let cond: boolean;
    function a() {
        let x: string | number | boolean;
        for (x = ""; cond; x = 5) {
            x; // string | number
        }
    }
    function b() {
        let x: string | number | boolean;
        for (x = 5; cond; x = x.length) {
            x; // number
            x = "";
        }
    }
    function c() {
        let x: string | number | boolean;
        for (x = 5; x = x.toExponential(); x = 5) {
            x; // string
        }
    }
    function d() {
        let x: string | number | boolean;
        for (x = ""; typeof x === "string"; x = 5) {
            x; // string
        }
    }
    function e() {
        let x: string | number | boolean | RegExp;
        for (x = "" || 0; typeof x !== "string"; x = "" || true) {
                 ~~
!!! error TS2873: This kind of expression is always falsy.
                                                     ~~
!!! error TS2873: This kind of expression is always falsy.
            x; // number | boolean
        }
    }
    function f() {
        let x: string | number | boolean;
        for (; typeof x !== "string";) {
            x; // number | boolean
            if (typeof x === "number") break;
            x = undefined;
        }
        x; // string | number
    }
    