Pretty print inexact (#5304)

master
Jordan Brown 2018-10-26 14:05:42 -04:00 committed by Lipis
parent 5d47e02f64
commit b861448dbf
4 changed files with 120 additions and 1 deletions

View File

@ -1288,13 +1288,18 @@ function printPathNoParens(path, options, print, args) {
return result;
});
if (n.inexact) {
props.push(concat(separatorParts.concat(group("..."))));
}
const lastElem = getLast(n[propertiesField]);
const canHaveTrailingSeparator = !(
lastElem &&
(lastElem.type === "RestProperty" ||
lastElem.type === "RestElement" ||
hasNodeIgnoreComment(lastElem))
hasNodeIgnoreComment(lastElem) ||
n.inexact)
);
let content;

View File

@ -0,0 +1,96 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`test.js - flow-verify 1`] = `
//@flow
type T = {
a: number,
...,
}
type U = { a: number, b: number, c: number, d: number, e: number, f: number, g: number, ...};
type V = {x: {...}, y: {x: {...}, a: number, b: number, c: number, d: number, e: number, f: number, ...}, z: {...}, foo: number, bar: {foo: number, ...}, ...};
function test(x: {foo: number, bar: number, baz: number, qux: nunber, a: number, b: number, c: {a: number, ...}, ...}) { return x; }
function test(x: {foo: number, bar: number, baz: number, qux: nunber, a: number, b: number, c: {a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, ...}, ...}) { return x; }
type W = {...};
type X = {
...,
};
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//@flow
type T = {
a: number,
...
};
type U = {
a: number,
b: number,
c: number,
d: number,
e: number,
f: number,
g: number,
...
};
type V = {
x: { ... },
y: {
x: { ... },
a: number,
b: number,
c: number,
d: number,
e: number,
f: number,
...
},
z: { ... },
foo: number,
bar: { foo: number, ... },
...
};
function test(x: {
foo: number,
bar: number,
baz: number,
qux: nunber,
a: number,
b: number,
c: { a: number, ... },
...
}) {
return x;
}
function test(x: {
foo: number,
bar: number,
baz: number,
qux: nunber,
a: number,
b: number,
c: {
a: number,
b: number,
c: number,
d: number,
e: number,
f: number,
g: number,
h: number,
i: number,
...
},
...
}) {
return x;
}
type W = { ... };
type X = { ... };
`;

View File

@ -0,0 +1 @@
run_spec(__dirname, ["flow"], { trailingComma: "es5" });

View File

@ -0,0 +1,17 @@
//@flow
type T = {
a: number,
...,
}
type U = { a: number, b: number, c: number, d: number, e: number, f: number, g: number, ...};
type V = {x: {...}, y: {x: {...}, a: number, b: number, c: number, d: number, e: number, f: number, ...}, z: {...}, foo: number, bar: {foo: number, ...}, ...};
function test(x: {foo: number, bar: number, baz: number, qux: nunber, a: number, b: number, c: {a: number, ...}, ...}) { return x; }
function test(x: {foo: number, bar: number, baz: number, qux: nunber, a: number, b: number, c: {a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, ...}, ...}) { return x; }
type W = {...};
type X = {
...,
};