prettier/tests/no-semi/__snapshots__/jsfmt.spec.js.snap

1000 lines
15 KiB
Plaintext

// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`comments.js 1`] = `
====================================options=====================================
parsers: ["flow"]
printWidth: 80
| printWidth
=====================================input======================================
let error = new Error(response.statusText);
// comment
(error: any).response = response
x;
/* comment */ (error: any).response = response
x;
(error: any).response = response; /* comment */
=====================================output=====================================
let error = new Error(response.statusText);
// comment
(error: any).response = response;
x;
/* comment */ (error: any).response = response;
x;
(error: any).response = response; /* comment */
================================================================================
`;
exports[`comments.js 2`] = `
====================================options=====================================
parsers: ["babel", "flow"]
printWidth: 80
semi: false
| printWidth
=====================================input======================================
let error = new Error(response.statusText);
// comment
(error: any).response = response
x;
/* comment */ (error: any).response = response
x;
(error: any).response = response; /* comment */
=====================================output=====================================
let error = new Error(response.statusText)
// comment
;(error: any).response = response
x
/* comment */ ;(error: any).response = response
x
;(error: any).response = response /* comment */
================================================================================
`;
exports[`flow-interfaces.js 1`] = `
====================================options=====================================
parsers: ["flow"]
printWidth: 80
| printWidth
=====================================input======================================
declare class A {
one: boolean;
two: { three: string }
| number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// declare class B {
// one: boolean
// two: { three: string }
// | number
// }
declare interface C {
one: boolean;
two: { three: string }
| number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// declare interface D {
// one: boolean
// two: { three: string }
// | number
// }
interface E {
one: boolean;
two: { three: string }
| number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// interface F {
// one: boolean
// two: { three: string }
// | number
// }
=====================================output=====================================
declare class A {
one: boolean;
two: { three: string } | number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// declare class B {
// one: boolean
// two: { three: string }
// | number
// }
declare interface C {
one: boolean;
two: { three: string } | number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// declare interface D {
// one: boolean
// two: { three: string }
// | number
// }
interface E {
one: boolean;
two: { three: string } | number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// interface F {
// one: boolean
// two: { three: string }
// | number
// }
================================================================================
`;
exports[`flow-interfaces.js 2`] = `
====================================options=====================================
parsers: ["babel", "flow"]
printWidth: 80
semi: false
| printWidth
=====================================input======================================
declare class A {
one: boolean;
two: { three: string }
| number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// declare class B {
// one: boolean
// two: { three: string }
// | number
// }
declare interface C {
one: boolean;
two: { three: string }
| number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// declare interface D {
// one: boolean
// two: { three: string }
// | number
// }
interface E {
one: boolean;
two: { three: string }
| number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// interface F {
// one: boolean
// two: { three: string }
// | number
// }
=====================================output=====================================
declare class A {
one: boolean;
two: { three: string } | number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// declare class B {
// one: boolean
// two: { three: string }
// | number
// }
declare interface C {
one: boolean;
two: { three: string } | number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// declare interface D {
// one: boolean
// two: { three: string }
// | number
// }
interface E {
one: boolean;
two: { three: string } | number;
}
// NOTE: Flow and Babel both fail to apply ASI here
// interface F {
// one: boolean
// two: { three: string }
// | number
// }
================================================================================
`;
exports[`issue2006.js 1`] = `
====================================options=====================================
parsers: ["flow"]
printWidth: 80
| printWidth
=====================================input======================================
switch (n) {
case 11:
var c = a.e;
(i.a += Ga(c.e)), F(i, c.i, 0);
}
var c = a.e;
(i.a += Ga(c.e)), F(i, c.i, 0);
=====================================output=====================================
switch (n) {
case 11:
var c = a.e;
(i.a += Ga(c.e)), F(i, c.i, 0);
}
var c = a.e;
(i.a += Ga(c.e)), F(i, c.i, 0);
================================================================================
`;
exports[`issue2006.js 2`] = `
====================================options=====================================
parsers: ["babel", "flow"]
printWidth: 80
semi: false
| printWidth
=====================================input======================================
switch (n) {
case 11:
var c = a.e;
(i.a += Ga(c.e)), F(i, c.i, 0);
}
var c = a.e;
(i.a += Ga(c.e)), F(i, c.i, 0);
=====================================output=====================================
switch (n) {
case 11:
var c = a.e
;(i.a += Ga(c.e)), F(i, c.i, 0)
}
var c = a.e
;(i.a += Ga(c.e)), F(i, c.i, 0)
================================================================================
`;
exports[`no-semi.js 1`] = `
====================================options=====================================
parsers: ["flow"]
printWidth: 80
| printWidth
=====================================input======================================
// with preexisting semi
x; [1, 2, 3].forEach(fn)
x; [a, b, ...c] = [1, 2]
x; /r/i.test('r')
x; +1
x; - 1
x; ('h' + 'i').repeat(10)
x; (1, 2)
x; (() => {})()
x; ({ a: 1 }).entries()
x; ({ a: 1 }).entries()
x; <Hello />
x; \`string\`
x; (x, y) => x
// doesn't have to be preceded by a semicolon
class X {} [1, 2, 3].forEach(fn)
// TODO: upgrade parser
// class A {
// async; // The semicolon is *not* necessary
// x(){}
// }
// class B {
// static; // The semicolon *is* necessary
// x(){}
// }
class C1 {
get; // The semicolon *is* necessary
x(){}
}
class C2 {
get = () => {}; // The semicolon is *not* necessary
x(){}
}
class C3 {
set; // The semicolon *is* necessary
x(){}
}
class C4 {
set = () => {}; // The semicolon is *not* necessary
x(){}
}
// don't semicolon if it doesn't start statement
if (true) (() => {})()
class A {
a = 0;
[b](){}
c = 0;
*d(){}
e = 0;
[f] = 0
// none of the semicolons above this comment can be omitted.
// none of the semicolons below this comment are necessary.
q() {};
[h](){}
p() {};
*i(){}
a = 1;
get ['y']() {}
a = 1;
static ['y']() {}
a = 1;
set ['z'](z) {}
a = 1;
async ['a']() {}
a = 1;
async *g() {}
a = 0;
b = 1;
}
// being first/last shouldn't break things
class G1 {
x = 1
}
class G2 {
x() {}
}
class G3 {
*x() {}
}
class G4 {
[x] = 1
}
// check indentation
if (true) {
x; (() => {})()
}
// flow
(x: void);
(y: void)
// check statement clauses
do break; while (false)
if (true) do break; while (false)
if (true) 1; else 2
for (;;) ;
for (x of y) ;
debugger
// check that it doesn't break non-ASI
1
- 1
1
+ 1
1
/ 1
arr
[0]
fn
(x)
!1
1
< 1
tag
\`string\`
x; x => x
x; (a || b).c++
x; ++(a || b).c
while (false)
(function(){}())
aReallyLongLine012345678901234567890123456789012345678901234567890123456789 *
(b + c)
=====================================output=====================================
// with preexisting semi
x;
[1, 2, 3].forEach(fn);
x;
[a, b, ...c] = [1, 2];
x;
/r/i.test("r");
x;
+1;
x;
-1;
x;
("h" + "i").repeat(10);
x;
1, 2;
x;
(() => {})();
x;
({ a: 1 }.entries());
x;
({ a: 1 }.entries());
x;
<Hello />;
x;
\`string\`;
x;
(x, y) => x;
// doesn't have to be preceded by a semicolon
class X {}
[1, 2, 3].forEach(fn);
// TODO: upgrade parser
// class A {
// async; // The semicolon is *not* necessary
// x(){}
// }
// class B {
// static; // The semicolon *is* necessary
// x(){}
// }
class C1 {
get; // The semicolon *is* necessary
x() {}
}
class C2 {
get = () => {}; // The semicolon is *not* necessary
x() {}
}
class C3 {
set; // The semicolon *is* necessary
x() {}
}
class C4 {
set = () => {}; // The semicolon is *not* necessary
x() {}
}
// don't semicolon if it doesn't start statement
if (true) (() => {})();
class A {
a = 0;
[b]() {}
c = 0;
*d() {}
e = 0;
[f] = 0;
// none of the semicolons above this comment can be omitted.
// none of the semicolons below this comment are necessary.
q() {}
[h]() {}
p() {}
*i() {}
a = 1;
get ["y"]() {}
a = 1;
static ["y"]() {}
a = 1;
set ["z"](z) {}
a = 1;
async ["a"]() {}
a = 1;
async *g() {}
a = 0;
b = 1;
}
// being first/last shouldn't break things
class G1 {
x = 1;
}
class G2 {
x() {}
}
class G3 {
*x() {}
}
class G4 {
[x] = 1;
}
// check indentation
if (true) {
x;
(() => {})();
}
// flow
(x: void);
(y: void);
// check statement clauses
do break;
while (false);
if (true)
do break;
while (false);
if (true) 1;
else 2;
for (;;);
for (x of y);
debugger;
// check that it doesn't break non-ASI
1 - 1;
1 + 1;
1 / 1;
arr[0];
fn(x);
!1;
1 < 1;
tag\`string\`;
x;
x => x;
x;
(a || b).c++;
x;
++(a || b).c;
while (false) (function() {})();
aReallyLongLine012345678901234567890123456789012345678901234567890123456789 *
(b + c);
================================================================================
`;
exports[`no-semi.js 2`] = `
====================================options=====================================
parsers: ["babel", "flow"]
printWidth: 80
semi: false
| printWidth
=====================================input======================================
// with preexisting semi
x; [1, 2, 3].forEach(fn)
x; [a, b, ...c] = [1, 2]
x; /r/i.test('r')
x; +1
x; - 1
x; ('h' + 'i').repeat(10)
x; (1, 2)
x; (() => {})()
x; ({ a: 1 }).entries()
x; ({ a: 1 }).entries()
x; <Hello />
x; \`string\`
x; (x, y) => x
// doesn't have to be preceded by a semicolon
class X {} [1, 2, 3].forEach(fn)
// TODO: upgrade parser
// class A {
// async; // The semicolon is *not* necessary
// x(){}
// }
// class B {
// static; // The semicolon *is* necessary
// x(){}
// }
class C1 {
get; // The semicolon *is* necessary
x(){}
}
class C2 {
get = () => {}; // The semicolon is *not* necessary
x(){}
}
class C3 {
set; // The semicolon *is* necessary
x(){}
}
class C4 {
set = () => {}; // The semicolon is *not* necessary
x(){}
}
// don't semicolon if it doesn't start statement
if (true) (() => {})()
class A {
a = 0;
[b](){}
c = 0;
*d(){}
e = 0;
[f] = 0
// none of the semicolons above this comment can be omitted.
// none of the semicolons below this comment are necessary.
q() {};
[h](){}
p() {};
*i(){}
a = 1;
get ['y']() {}
a = 1;
static ['y']() {}
a = 1;
set ['z'](z) {}
a = 1;
async ['a']() {}
a = 1;
async *g() {}
a = 0;
b = 1;
}
// being first/last shouldn't break things
class G1 {
x = 1
}
class G2 {
x() {}
}
class G3 {
*x() {}
}
class G4 {
[x] = 1
}
// check indentation
if (true) {
x; (() => {})()
}
// flow
(x: void);
(y: void)
// check statement clauses
do break; while (false)
if (true) do break; while (false)
if (true) 1; else 2
for (;;) ;
for (x of y) ;
debugger
// check that it doesn't break non-ASI
1
- 1
1
+ 1
1
/ 1
arr
[0]
fn
(x)
!1
1
< 1
tag
\`string\`
x; x => x
x; (a || b).c++
x; ++(a || b).c
while (false)
(function(){}())
aReallyLongLine012345678901234567890123456789012345678901234567890123456789 *
(b + c)
=====================================output=====================================
// with preexisting semi
x
;[1, 2, 3].forEach(fn)
x
;[a, b, ...c] = [1, 2]
x
;/r/i.test("r")
x
;+1
x
;-1
x
;("h" + "i").repeat(10)
x
1, 2
x
;(() => {})()
x
;({ a: 1 }.entries())
x
;({ a: 1 }.entries())
x
;<Hello />
x
;\`string\`
x
;(x, y) => x
// doesn't have to be preceded by a semicolon
class X {}
;[1, 2, 3].forEach(fn)
// TODO: upgrade parser
// class A {
// async; // The semicolon is *not* necessary
// x(){}
// }
// class B {
// static; // The semicolon *is* necessary
// x(){}
// }
class C1 {
get; // The semicolon *is* necessary
x() {}
}
class C2 {
get = () => {} // The semicolon is *not* necessary
x() {}
}
class C3 {
set; // The semicolon *is* necessary
x() {}
}
class C4 {
set = () => {} // The semicolon is *not* necessary
x() {}
}
// don't semicolon if it doesn't start statement
if (true) (() => {})()
class A {
a = 0;
[b]() {}
c = 0;
*d() {}
e = 0;
[f] = 0
// none of the semicolons above this comment can be omitted.
// none of the semicolons below this comment are necessary.
q() {}
[h]() {}
p() {}
*i() {}
a = 1
get ["y"]() {}
a = 1
static ["y"]() {}
a = 1
set ["z"](z) {}
a = 1
async ["a"]() {}
a = 1
async *g() {}
a = 0
b = 1
}
// being first/last shouldn't break things
class G1 {
x = 1
}
class G2 {
x() {}
}
class G3 {
*x() {}
}
class G4 {
[x] = 1
}
// check indentation
if (true) {
x
;(() => {})()
}
// flow
;(x: void)
;(y: void)
// check statement clauses
do break
while (false)
if (true)
do break
while (false)
if (true) 1
else 2
for (;;);
for (x of y);
debugger
// check that it doesn't break non-ASI
1 - 1
1 + 1
1 / 1
arr[0]
fn(x)
!1
1 < 1
tag\`string\`
x
x => x
x
;(a || b).c++
x
++(a || b).c
while (false) (function() {})()
aReallyLongLine012345678901234567890123456789012345678901234567890123456789 *
(b + c)
================================================================================
`;