prettier/tests/switch/__snapshots__/jsfmt.spec.js.snap

403 lines
6.0 KiB
Plaintext
Raw Normal View History

exports[`test more_switch.js 1`] = `
"/* @flow */
function foo(x): number {
switch (x) {
case 0:
case 1: return 1;
2016-12-30 19:56:42 +03:00
default: throw new Error(\'hi\');
}
}
function bar(x) {
switch (x) {
case 0: break;
default: return;
}
1;
}
function baz(x): number {
switch (x) {
case 0: break;
case 1: return 1;
2016-12-30 19:56:42 +03:00
default: throw new Error(\'hi\');
}
return 2;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2016-12-27 21:29:31 +03:00
/* @flow */
2016-12-27 21:29:31 +03:00
function foo(x): number {
switch (x) {
case 0:
case 1:
return 1;
default:
throw new Error(\"hi\");
2016-12-27 21:29:31 +03:00
}
}
2016-12-27 21:29:31 +03:00
function bar(x) {
switch (x) {
case 0:
break;
default:
return;
2016-12-27 21:29:31 +03:00
}
1;
2016-12-27 21:29:31 +03:00
}
2016-12-27 21:29:31 +03:00
function baz(x): number {
switch (x) {
case 0:
break;
case 1:
return 1;
default:
throw new Error(\"hi\");
2016-12-27 21:29:31 +03:00
}
return 2;
2017-01-11 18:16:38 +03:00
}
"
`;
exports[`test switch.js 1`] = `
"/**
* @flow
*/
function foo(
): number {
2016-12-30 19:56:42 +03:00
switch (\'foo\') {
case \'foo\':
return 1;
}
return 2;
}
function bar() {
2016-12-30 19:56:42 +03:00
switch (\'bar\') {
case \'bar\':
break;
default:
break;
}
}
function qux(b) {
2016-12-30 19:56:42 +03:00
var x = b? 0: \"\";
switch(\'qux\') {
case \'\':
x = 0;
2016-12-30 19:56:42 +03:00
case \'qux\':
x = x*x;
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2016-12-27 21:29:31 +03:00
/**
* @flow
*/
function foo(): number {
2016-12-30 19:56:42 +03:00
switch (\"foo\") {
case \"foo\":
return 1;
2016-12-27 21:29:31 +03:00
}
return 2;
2016-12-27 21:29:31 +03:00
}
2016-12-27 21:29:31 +03:00
function bar() {
2016-12-30 19:56:42 +03:00
switch (\"bar\") {
case \"bar\":
break;
default:
break;
2016-12-27 21:29:31 +03:00
}
}
2016-12-27 21:29:31 +03:00
function qux(b) {
var x = b ? 0 : \"\";
2016-12-30 19:56:42 +03:00
switch (\"qux\") {
case \"\":
x = 0;
case \"qux\":
x = x * x;
2016-12-27 21:29:31 +03:00
}
2017-01-11 18:16:38 +03:00
}
"
`;
exports[`test switch_default_fallthrough.js 1`] = `
"/**
* @flow
*/
function foo(x : mixed): string {
2016-12-30 19:56:42 +03:00
var a = \"\";
var b = \"\";
switch (x) {
2016-12-30 19:56:42 +03:00
case \"foo\":
a = 0;
default:
b = 0;
}
// a is now string | number
(a : string); // error, string | number ~/> string
(a : number); // error, string | number ~/> number
// b is now number
(b : number); // ok
return b; // error, number ~/> string
}
function baz(x: mixed): number {
2016-12-30 19:56:42 +03:00
var a = \"\";
var b = \"\";
switch (x) {
2016-12-30 19:56:42 +03:00
case \"baz\":
a = 0;
break;
2016-12-30 19:56:42 +03:00
case \"bar\":
a = \"\";
default:
b = 0;
}
// a is now string | number
(a : string); // error, string | number ~/> string
(a : number); // error, string | number ~/> number
// b is now string | number
(b : string); // error, string | number ~/> string
(b : number); // error, string | number ~/> number
return a+b; // error, string ~/> number
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2016-12-27 21:29:31 +03:00
/**
* @flow
*/
function foo(x: mixed): string {
2016-12-30 19:56:42 +03:00
var a = \"\";
var b = \"\";
2016-12-27 21:29:31 +03:00
switch (x) {
case \"foo\":
a = 0;
default:
b = 0;
2016-12-27 21:29:31 +03:00
}
// a is now string | number
2016-12-27 21:29:31 +03:00
(a: string);
// error, string | number ~/> string
2016-12-27 21:29:31 +03:00
(a: number);
// error, string | number ~/> number
// b is now number
2016-12-27 21:29:31 +03:00
(b: number);
// ok
return b; // error, number ~/> string
2016-12-27 21:29:31 +03:00
}
2016-12-27 21:29:31 +03:00
function baz(x: mixed): number {
2016-12-30 19:56:42 +03:00
var a = \"\";
var b = \"\";
2016-12-27 21:29:31 +03:00
switch (x) {
case \"baz\":
a = 0;
break;
case \"bar\":
a = \"\";
default:
b = 0;
2016-12-27 21:29:31 +03:00
}
// a is now string | number
2016-12-27 21:29:31 +03:00
(a: string);
// error, string | number ~/> string
2016-12-27 21:29:31 +03:00
(a: number);
// error, string | number ~/> number
// b is now string | number
2016-12-27 21:29:31 +03:00
(b: string);
// error, string | number ~/> string
2016-12-27 21:29:31 +03:00
(b: number);
// error, string | number ~/> number
return a + b; // error, string ~/> number
2017-01-11 18:16:38 +03:00
}
"
`;
exports[`test trailing_cases.js 1`] = `
"/**
* trailing cases are allowed - spot checks that we handle them as usual
* @flow
*/
function f1(i) {
var x;
switch (i) {
case 0:
x = 0;
break;
case 1:
x = 1;
break;
default:
x = -1;
break;
case 2:
2016-12-30 19:56:42 +03:00
x = \"2\";
break;
}
var y:number = x; // error, number | string ~/> number
}
function f2(i) {
var x;
switch (i) {
case 0:
case 1:
default:
x = 1;
break;
case 2:
// does not fall through default
}
var y:number = x; // error, number | uninitialized ~/> number
}
function f3(i) {
var x;
switch (i) {
case 0:
case 1:
default:
// falls through to subsequent cases
case 2:
x = 1;
}
var y:number = x; // no error
}
function foo(x): number {
switch (x) {
case 0:
2016-12-30 19:56:42 +03:00
default: throw new Error(\'hi\');
case 1: return 1;
}
}
function bar(x) {
switch (x) {
default: return;
case 0: break;
}
1;
}
function baz(x): number {
switch (x) {
case 0: break;
2016-12-30 19:56:42 +03:00
default: throw new Error(\'hi\');
case 1: return 1;
}
return 2;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2016-12-27 21:29:31 +03:00
/**
* trailing cases are allowed - spot checks that we handle them as usual
* @flow
*/
function f1(i) {
var x;
2016-12-27 21:29:31 +03:00
switch (i) {
case 0:
x = 0;
break;
case 1:
x = 1;
break;
default:
x = -1;
break;
case 2:
x = \"2\";
break;
2016-12-27 21:29:31 +03:00
}
var y: number = x; // error, number | string ~/> number
2016-12-27 21:29:31 +03:00
}
2016-12-27 21:29:31 +03:00
function f2(i) {
var x;
2016-12-27 21:29:31 +03:00
switch (i) {
case 0:
case 1:
default:
x = 1;
break;
// does not fall through default
case 2:
2016-12-27 21:29:31 +03:00
}
var y: number = x; // error, number | uninitialized ~/> number
2016-12-27 21:29:31 +03:00
}
2016-12-27 21:29:31 +03:00
function f3(i) {
var x;
2016-12-27 21:29:31 +03:00
switch (i) {
case 0:
case 1:
default:
// falls through to subsequent cases
case 2:
x = 1;
2016-12-27 21:29:31 +03:00
}
var y: number = x; // no error
2016-12-27 21:29:31 +03:00
}
2016-12-27 21:29:31 +03:00
function foo(x): number {
switch (x) {
case 0:
default:
throw new Error(\"hi\");
case 1:
return 1;
2016-12-27 21:29:31 +03:00
}
}
2016-12-27 21:29:31 +03:00
function bar(x) {
switch (x) {
default:
return;
case 0:
break;
2016-12-27 21:29:31 +03:00
}
1;
2016-12-27 21:29:31 +03:00
}
2016-12-27 21:29:31 +03:00
function baz(x): number {
switch (x) {
case 0:
break;
default:
throw new Error(\"hi\");
case 1:
return 1;
2016-12-27 21:29:31 +03:00
}
return 2;
2017-01-11 18:16:38 +03:00
}
"
`;