// @flow

type T = {type: 'A', ...A, ...} | {type: 'B', ...B, ...};

declare const x: T;
switch (x.type) {
  case 'A':
    x.foo as empty; // error: string ~> empty
    break;
}

// types defined below use to ensure annot resolution happens after
type B = {bar: string};
type A = {foo: string};
