// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`promise.js - flow-verify 1`] = ` /** * At the moment, all type params are invariant with * the exception of the single param to the Promise class, * which is covariant. * * Explicit variance control via annotation is coming, * but not immediately. In the meantime, Promise's * participation in async/await makes certain kinds of * errors onerous (and nonobvious) without covariance. * * @flow */ async function foo(x: boolean): Promise { if (x) { return {bar: 'baz'}; // OK, because of covariant type param } else { return null; } } async function run() { console.log(await foo(true)); console.log(await foo(false)); } run() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /** * At the moment, all type params are invariant with * the exception of the single param to the Promise class, * which is covariant. * * Explicit variance control via annotation is coming, * but not immediately. In the meantime, Promise's * participation in async/await makes certain kinds of * errors onerous (and nonobvious) without covariance. * * @flow */ async function foo(x: boolean): Promise { if (x) { return { bar: "baz" }; // OK, because of covariant type param } else { return null; } } async function run() { console.log(await foo(true)); console.log(await foo(false)); } run(); `;