//@flow

function identity<T>(x: T): T { return x }

identity<_>(3);
//       ^?
identity<_>('string');
//       ^?

declare function createObj<T>(): {x: T, ...};

const x: {x: number|string, ...} = createObj<_>();
//                                           ^?
x.x = 3;
x.x = "string";
