tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts(33,1): error TS2741: Property 'a' is missing in type 'Gen2<ABC.B>' but required in type 'Gen2<ABC.A>'.
tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts(34,1): error TS2741: Property 'b' is missing in type 'Gen2<ABC.A>' but required in type 'Gen2<ABC.B>'.


==== tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts (2 errors) ====
    enum ABC { A, B }
    
    type Gen<T extends ABC> = { v: T; } & (
      {
        v: ABC.A,
        a: string,
      } | {
        v: ABC.B,
        b: string,
      }
    )
    
    // Quick info: ???
    //
    // type Gen2<T extends ABC> = {
    //    v: string;
    // }
    //
    type Gen2<T extends ABC> = {
      [Property in keyof Gen<T>]: string;
    };
    
    // 'a' and 'b' properties required !?!?
    const gen2TypeA: Gen2<ABC.A> = { v:  "I am A", a: "" };
    const gen2TypeB: Gen2<ABC.B> = { v:  "I am B", b: "" };
    
    // 'v' ???
    type K = keyof Gen2<ABC.A>;
    
    // :(
    declare let a: Gen2<ABC.A>;
    declare let b: Gen2<ABC.B>;
    a = b;
    ~
!!! error TS2741: Property 'a' is missing in type 'Gen2<ABC.B>' but required in type 'Gen2<ABC.A>'.
!!! related TS2728 tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts:6:5: 'a' is declared here.
    b = a;
    ~
!!! error TS2741: Property 'b' is missing in type 'Gen2<ABC.A>' but required in type 'Gen2<ABC.B>'.
!!! related TS2728 tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts:9:5: 'b' is declared here.
    