prettier/tests/flow/async_iteration/__snapshots__/jsfmt.spec.js.snap

266 lines
6.1 KiB
Plaintext

// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`delegate_yield.js 1`] = `
====================================options=====================================
parsers: ["flow", "babel"]
printWidth: 80
| printWidth
=====================================input======================================
async function *delegate_next() {
async function *inner() {
var x: void = yield; // error: number ~> void
}
yield *inner();
}
delegate_next().next(0);
async function *delegate_yield() {
async function *inner() {
yield 0;
}
yield *inner();
}
(async () => {
for await (const x of delegate_yield()) {
(x: void); // error: number ~> void
}
});
async function *delegate_return() {
async function *inner() {
return 0;
}
var x: void = yield *inner(); // error: number ~> void
}
=====================================output=====================================
async function* delegate_next() {
async function* inner() {
var x: void = yield; // error: number ~> void
}
yield* inner();
}
delegate_next().next(0);
async function* delegate_yield() {
async function* inner() {
yield 0;
}
yield* inner();
}
async () => {
for await (const x of delegate_yield()) {
(x: void); // error: number ~> void
}
};
async function* delegate_return() {
async function* inner() {
return 0;
}
var x: void = yield* inner(); // error: number ~> void
}
================================================================================
`;
exports[`generator.js 1`] = `
====================================options=====================================
parsers: ["flow", "babel"]
printWidth: 80
| printWidth
=====================================input======================================
declare interface File {
readLine(): Promise<string>;
close(): void;
EOF: boolean;
}
declare function fileOpen(path: string): Promise<File>;
async function* readLines(path) {
let file: File = await fileOpen(path);
try {
while (!file.EOF) {
yield await file.readLine();
}
} finally {
file.close();
}
}
async function f() {
for await (const line of readLines("/path/to/file")) {
(line: void); // error: string ~> void
}
}
=====================================output=====================================
declare interface File {
readLine(): Promise<string>;
close(): void;
EOF: boolean;
}
declare function fileOpen(path: string): Promise<File>;
async function* readLines(path) {
let file: File = await fileOpen(path);
try {
while (!file.EOF) {
yield await file.readLine();
}
} finally {
file.close();
}
}
async function f() {
for await (const line of readLines("/path/to/file")) {
(line: void); // error: string ~> void
}
}
================================================================================
`;
exports[`return.js 1`] = `
====================================options=====================================
parsers: ["flow", "babel"]
printWidth: 80
| printWidth
=====================================input======================================
declare var gen: AsyncGenerator<void,string,void>;
// You can pass whatever you like to return, it doesn't need to be related to
// the AsyncGenerator's return type
gen.return(0).then(result => {
(result.value: void); // error: string | number ~> void
});
// However, a generator can "refuse" the return by catching an exception and
// yielding or returning internally.
async function *refuse_return() {
try {
yield 1;
} finally {
return 0;
}
}
refuse_return().return("string").then(result => {
if (result.done) {
(result.value: string); // error: number | void ~> string
}
});
=====================================output=====================================
declare var gen: AsyncGenerator<void, string, void>;
// You can pass whatever you like to return, it doesn't need to be related to
// the AsyncGenerator's return type
gen.return(0).then(result => {
(result.value: void); // error: string | number ~> void
});
// However, a generator can "refuse" the return by catching an exception and
// yielding or returning internally.
async function* refuse_return() {
try {
yield 1;
} finally {
return 0;
}
}
refuse_return()
.return("string")
.then(result => {
if (result.done) {
(result.value: string); // error: number | void ~> string
}
});
================================================================================
`;
exports[`throw.js 1`] = `
====================================options=====================================
parsers: ["flow", "babel"]
printWidth: 80
| printWidth
=====================================input======================================
async function *catch_return() {
try {
yield 0;
} catch (e) {
return e;
}
}
(async () => {
catch_return().throw("").then(({value}) => {
if (value !== undefined) {
(value: void); // error: number ~> void
}
});
});
async function *yield_return() {
try {
yield 0;
return;
} catch (e) {
yield e;
}
}
(async () => {
yield_return().throw("").then(({value}) => {
if (value !== undefined) {
(value: void); // error: number ~> void
}
});
});
=====================================output=====================================
async function* catch_return() {
try {
yield 0;
} catch (e) {
return e;
}
}
async () => {
catch_return()
.throw("")
.then(({ value }) => {
if (value !== undefined) {
(value: void); // error: number ~> void
}
});
};
async function* yield_return() {
try {
yield 0;
return;
} catch (e) {
yield e;
}
}
async () => {
yield_return()
.throw("")
.then(({ value }) => {
if (value !== undefined) {
(value: void); // error: number ~> void
}
});
};
================================================================================
`;