arithmeticOperatorWithEnumUnion.ts(17,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(18,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(18,15): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(19,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(19,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(20,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(21,11): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(21,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(23,17): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(27,12): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(31,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(32,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(32,15): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(33,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(33,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(34,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(35,11): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(35,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(37,17): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(41,12): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(45,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(46,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(46,15): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(47,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(47,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(48,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(49,11): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(49,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(51,17): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(55,12): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(59,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(60,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(60,15): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(61,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(61,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(62,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(63,11): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(63,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(65,17): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(69,12): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(73,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(74,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(74,16): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(75,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(75,16): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(76,16): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(77,11): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(77,16): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(79,18): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(83,12): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(87,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(88,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(88,16): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(89,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(89,16): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(90,16): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(91,11): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(91,16): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(93,18): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(97,12): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(101,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(102,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(102,17): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(103,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(103,17): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(104,17): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(105,11): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(105,17): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(107,19): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(111,12): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(115,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(116,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(116,15): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(117,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(117,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(118,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(119,11): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(119,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(121,17): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(125,12): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(129,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(130,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(130,15): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(131,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(131,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(132,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(133,11): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(133,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(135,17): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(139,12): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(143,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(144,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(144,15): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(145,11): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(145,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(146,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(147,11): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(147,15): error TS2454: Variable 'c' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(149,17): error TS2454: Variable 'b' is used before being assigned.
arithmeticOperatorWithEnumUnion.ts(153,12): error TS2454: Variable 'b' is used before being assigned.


==== arithmeticOperatorWithEnumUnion.ts (100 errors) ====
    // operands of an enum type are treated as having the primitive type Number.
    
    enum E {
        a,
        b
    }
    enum F {
        c,
        d
    }
    
    var a: any;
    var b: number;
    var c: E | F;
    
    // operator *
    var ra1 = c * a;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var ra2 = c * b;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var ra3 = c * c;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var ra4 = a * c;
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var ra5 = b * c;
              ~
!!! error TS2454: Variable 'b' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var ra6 = E.a * a;
    var ra7 = E.a * b;
                    ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var ra8 = E.a * E.b;
    var ra9 = E.a * 1;
    var ra10 = a * E.b;
    var ra11 = b * E.b;
               ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var ra12 = 1 * E.b;
    
    // operator /
    var rb1 = c / a;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rb2 = c / b;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rb3 = c / c;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rb4 = a / c;
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rb5 = b / c;
              ~
!!! error TS2454: Variable 'b' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rb6 = E.a / a;
    var rb7 = E.a / b;
                    ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rb8 = E.a / E.b;
    var rb9 = E.a / 1;
    var rb10 = a / E.b;
    var rb11 = b / E.b;
               ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rb12 = 1 / E.b;
    
    // operator %
    var rc1 = c % a;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rc2 = c % b;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rc3 = c % c;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rc4 = a % c;
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rc5 = b % c;
              ~
!!! error TS2454: Variable 'b' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rc6 = E.a % a;
    var rc7 = E.a % b;
                    ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rc8 = E.a % E.b;
    var rc9 = E.a % 1;
    var rc10 = a % E.b;
    var rc11 = b % E.b;
               ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rc12 = 1 % E.b;
    
    // operator -
    var rd1 = c - a;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rd2 = c - b;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rd3 = c - c;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rd4 = a - c;
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rd5 = b - c;
              ~
!!! error TS2454: Variable 'b' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rd6 = E.a - a;
    var rd7 = E.a - b;
                    ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rd8 = E.a - E.b;
    var rd9 = E.a - 1;
    var rd10 = a - E.b;
    var rd11 = b - E.b;
               ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rd12 = 1 - E.b;
    
    // operator <<
    var re1 = c << a;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var re2 = c << b;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                   ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var re3 = c << c;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                   ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var re4 = a << c;
                   ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var re5 = b << c;
              ~
!!! error TS2454: Variable 'b' is used before being assigned.
                   ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var re6 = E.a << a;
    var re7 = E.a << b;
                     ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var re8 = E.a << E.b;
    var re9 = E.a << 1;
    var re10 = a << E.b;
    var re11 = b << E.b;
               ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var re12 = 1 << E.b;
    
    // operator >>
    var rf1 = c >> a;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rf2 = c >> b;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                   ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rf3 = c >> c;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                   ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rf4 = a >> c;
                   ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rf5 = b >> c;
              ~
!!! error TS2454: Variable 'b' is used before being assigned.
                   ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rf6 = E.a >> a;
    var rf7 = E.a >> b;
                     ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rf8 = E.a >> E.b;
    var rf9 = E.a >> 1;
    var rf10 = a >> E.b;
    var rf11 = b >> E.b;
               ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rf12 = 1 >> E.b;
    
    // operator >>>
    var rg1 = c >>> a;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rg2 = c >>> b;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                    ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rg3 = c >>> c;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                    ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rg4 = a >>> c;
                    ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rg5 = b >>> c;
              ~
!!! error TS2454: Variable 'b' is used before being assigned.
                    ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rg6 = E.a >>> a;
    var rg7 = E.a >>> b;
                      ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rg8 = E.a >>> E.b;
    var rg9 = E.a >>> 1;
    var rg10 = a >>> E.b;
    var rg11 = b >>> E.b;
               ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rg12 = 1 >>> E.b;
    
    // operator &
    var rh1 = c & a;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rh2 = c & b;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rh3 = c & c;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rh4 = a & c;
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rh5 = b & c;
              ~
!!! error TS2454: Variable 'b' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rh6 = E.a & a;
    var rh7 = E.a & b;
                    ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rh8 = E.a & E.b;
    var rh9 = E.a & 1;
    var rh10 = a & E.b;
    var rh11 = b & E.b;
               ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rh12 = 1 & E.b;
    
    // operator ^
    var ri1 = c ^ a;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var ri2 = c ^ b;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var ri3 = c ^ c;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var ri4 = a ^ c;
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var ri5 = b ^ c;
              ~
!!! error TS2454: Variable 'b' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var ri6 = E.a ^ a;
    var ri7 = E.a ^ b;
                    ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var ri8 = E.a ^ E.b;
    var ri9 = E.a ^ 1;
    var ri10 = a ^ E.b;
    var ri11 = b ^ E.b;
               ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var ri12 = 1 ^ E.b;
    
    // operator |
    var rj1 = c | a;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rj2 = c | b;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rj3 = c | c;
              ~
!!! error TS2454: Variable 'c' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rj4 = a | c;
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rj5 = b | c;
              ~
!!! error TS2454: Variable 'b' is used before being assigned.
                  ~
!!! error TS2454: Variable 'c' is used before being assigned.
    var rj6 = E.a | a;
    var rj7 = E.a | b;
                    ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rj8 = E.a | E.b;
    var rj9 = E.a | 1;
    var rj10 = a | E.b;
    var rj11 = b | E.b;
               ~
!!! error TS2454: Variable 'b' is used before being assigned.
    var rj12 = 1 | E.b;