tests/cases/conformance/types/literal/numericLiteralTypes3.ts(8,5): error TS2322: Type 'B' is not assignable to type '1'.
  Type '2' is not assignable to type '1'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(9,5): error TS2322: Type 'C' is not assignable to type '1'.
  Type '2' is not assignable to type '1'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(10,5): error TS2322: Type 'D' is not assignable to type '1'.
  Type '0' is not assignable to type '1'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(14,5): error TS2322: Type '1' is not assignable to type 'B'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(16,5): error TS2322: Type 'C' is not assignable to type 'B'.
  Type '1' is not assignable to type 'B'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(17,5): error TS2322: Type 'D' is not assignable to type 'B'.
  Type '0' is not assignable to type 'B'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(24,5): error TS2322: Type 'D' is not assignable to type 'C'.
  Type '0' is not assignable to type 'C'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(29,5): error TS2322: Type 'B' is not assignable to type 'D'.
  Type '3' is not assignable to type 'D'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(30,5): error TS2322: Type 'C' is not assignable to type 'D'.
  Type '3' is not assignable to type 'D'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(35,5): error TS2322: Type '0' is not assignable to type '1'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(37,5): error TS2322: Type '2' is not assignable to type '1'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(38,5): error TS2322: Type '3' is not assignable to type '1'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(39,5): error TS2322: Type '0' is not assignable to type 'B'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(40,5): error TS2322: Type '1' is not assignable to type 'B'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(43,5): error TS2322: Type '0' is not assignable to type 'C'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(50,5): error TS2322: Type '3' is not assignable to type 'D'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(54,5): error TS2365: Operator '===' cannot be applied to types '1' and '0'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(56,5): error TS2365: Operator '===' cannot be applied to types '1' and '2'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(57,5): error TS2365: Operator '===' cannot be applied to types '1' and '3'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(58,5): error TS2365: Operator '===' cannot be applied to types 'B' and '0'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(59,5): error TS2365: Operator '===' cannot be applied to types 'B' and '1'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(62,5): error TS2365: Operator '===' cannot be applied to types 'C' and '0'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(69,5): error TS2365: Operator '===' cannot be applied to types 'D' and '3'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(74,5): error TS2365: Operator '===' cannot be applied to types '1' and 'B'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(77,5): error TS2365: Operator '===' cannot be applied to types 'B' and '1'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(94,14): error TS2678: Type '1' is not comparable to type '0 | 2 | 4'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(96,14): error TS2678: Type '3' is not comparable to type '0 | 2 | 4'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(98,14): error TS2678: Type '5' is not comparable to type '0 | 2 | 4'.


==== tests/cases/conformance/types/literal/numericLiteralTypes3.ts (28 errors) ====
    type A = 1;
    type B = 2 | 3;
    type C = 1 | 2 | 3;
    type D = 0 | 1 | 2;
    
    function f1(a: A, b: B, c: C, d: D) {
        a = a;
        a = b;
        ~
!!! error TS2322: Type 'B' is not assignable to type '1'.
!!! error TS2322:   Type '2' is not assignable to type '1'.
        a = c;
        ~
!!! error TS2322: Type 'C' is not assignable to type '1'.
!!! error TS2322:   Type '2' is not assignable to type '1'.
        a = d;
        ~
!!! error TS2322: Type 'D' is not assignable to type '1'.
!!! error TS2322:   Type '0' is not assignable to type '1'.
    }
    
    function f2(a: A, b: B, c: C, d: D) {
        b = a;
        ~
!!! error TS2322: Type '1' is not assignable to type 'B'.
        b = b;
        b = c;
        ~
!!! error TS2322: Type 'C' is not assignable to type 'B'.
!!! error TS2322:   Type '1' is not assignable to type 'B'.
        b = d;
        ~
!!! error TS2322: Type 'D' is not assignable to type 'B'.
!!! error TS2322:   Type '0' is not assignable to type 'B'.
    }
    
    function f3(a: A, b: B, c: C, d: D) {
        c = a;
        c = b;
        c = c;
        c = d;
        ~
!!! error TS2322: Type 'D' is not assignable to type 'C'.
!!! error TS2322:   Type '0' is not assignable to type 'C'.
    }
    
    function f4(a: A, b: B, c: C, d: D) {
        d = a;
        d = b;
        ~
!!! error TS2322: Type 'B' is not assignable to type 'D'.
!!! error TS2322:   Type '3' is not assignable to type 'D'.
        d = c;
        ~
!!! error TS2322: Type 'C' is not assignable to type 'D'.
!!! error TS2322:   Type '3' is not assignable to type 'D'.
        d = d;
    }
    
    function f5(a: A, b: B, c: C, d: D) {
        a = 0;
        ~
!!! error TS2322: Type '0' is not assignable to type '1'.
        a = 1;
        a = 2;
        ~
!!! error TS2322: Type '2' is not assignable to type '1'.
        a = 3;
        ~
!!! error TS2322: Type '3' is not assignable to type '1'.
        b = 0;
        ~
!!! error TS2322: Type '0' is not assignable to type 'B'.
        b = 1;
        ~
!!! error TS2322: Type '1' is not assignable to type 'B'.
        b = 2;
        b = 3;
        c = 0;
        ~
!!! error TS2322: Type '0' is not assignable to type 'C'.
        c = 1;
        c = 2;
        c = 3;
        d = 0;
        d = 1;
        d = 2;
        d = 3;
        ~
!!! error TS2322: Type '3' is not assignable to type 'D'.
    }
    
    function f6(a: A, b: B, c: C, d: D) {
        a === 0;
        ~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types '1' and '0'.
        a === 1;
        a === 2;
        ~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types '1' and '2'.
        a === 3;
        ~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types '1' and '3'.
        b === 0;
        ~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types 'B' and '0'.
        b === 1;
        ~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types 'B' and '1'.
        b === 2;
        b === 3;
        c === 0;
        ~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types 'C' and '0'.
        c === 1;
        c === 2;
        c === 3;
        d === 0;
        d === 1;
        d === 2;
        d === 3;
        ~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types 'D' and '3'.
    }
    
    function f7(a: A, b: B, c: C, d: D) {
        a === a;
        a === b;
        ~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types '1' and 'B'.
        a === c;
        a === d;
        b === a;
        ~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types 'B' and '1'.
        b === b;
        b === c;
        b === d;
        c === a;
        c === b;
        c === c;
        c === d;
        d === a;
        d === b;
        d === c;
        d === d;
    }
    
    function f8(x: 0 | 2 | 4) {
        switch (x) {
            case 0: return;
            case 1: return;
                 ~
!!! error TS2678: Type '1' is not comparable to type '0 | 2 | 4'.
            case 2: return;
            case 3: return;
                 ~
!!! error TS2678: Type '3' is not comparable to type '0 | 2 | 4'.
            case 4: return;
            case 5: return;
                 ~
!!! error TS2678: Type '5' is not comparable to type '0 | 2 | 4'.
        }
    }