newtests/union_new/issue-1948.js (22 lines of code) (raw):

// @flow type Action = { type: 'A' | 'B', val: number } type Thunk = (n: number) => number type A = Thunk | Action type B = Action | Thunk const a1 = (n: number): A => ((n: number): number => n) const b1 = (n: number): B => ((n: number): number => n) const a2 = (n: number): A => ((n) => n); const b2 = (n: number): B => ((n) => n); const a2_ = (n: number): Thunk => ((n) => n); const a3: A = n => n; const b3: B = n => n; const a3_: Thunk = n => n; const a4: A = (n: number) => n; const b4: B = (n: number) => n; const a4_: Thunk = (n: number) => n; const a5: A = (n: number): number => n; const b5: B = (n: number): number => n; const a6 = (n: number): A => ({type: 'A', val: n}); const b6 = (n: number): B => ({type: 'B', val: n});