Fix different precedence binary expression when inlining (#2827)
parent
2be986d0d7
commit
9b0d6b8de0
|
@ -355,11 +355,12 @@ function genericPrintNoParens(path, options, print, args) {
|
||||||
parent.type === "ObjectProperty" ||
|
parent.type === "ObjectProperty" ||
|
||||||
parent.type === "Property";
|
parent.type === "Property";
|
||||||
|
|
||||||
const logicalSubExpression = n.left.type === "LogicalExpression";
|
const samePrecedenceSubExpression =
|
||||||
|
isBinaryish(n.left) && util.shouldFlatten(n.operator, n.left.operator);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
shouldNotIdent ||
|
shouldNotIdent ||
|
||||||
(shouldInlineLogicalExpression(n) && !logicalSubExpression) ||
|
(shouldInlineLogicalExpression(n) && !samePrecedenceSubExpression) ||
|
||||||
(!shouldInlineLogicalExpression(n) && shouldIdentIfInlining)
|
(!shouldInlineLogicalExpression(n) && shouldIdentIfInlining)
|
||||||
) {
|
) {
|
||||||
return group(concat(parts));
|
return group(concat(parts));
|
||||||
|
|
|
@ -145,6 +145,37 @@ if (
|
||||||
|
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`inline-jsx.js 1`] = `
|
||||||
|
const user = renderedUser || <div><User name={this.state.user.name} age={this.state.user.age} /></div>;
|
||||||
|
|
||||||
|
const user = renderedUser || shouldRenderUser && <div><User name={this.state.user.name} age={this.state.user.age} /></div>;
|
||||||
|
|
||||||
|
const avatar = hasAvatar && <Gravatar user={author} size={size} />;
|
||||||
|
|
||||||
|
const avatar = (hasAvatar || showPlaceholder) && <Gravatar user={author} size={size} />;
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
const user = renderedUser || (
|
||||||
|
<div>
|
||||||
|
<User name={this.state.user.name} age={this.state.user.age} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
|
const user =
|
||||||
|
renderedUser ||
|
||||||
|
(shouldRenderUser && (
|
||||||
|
<div>
|
||||||
|
<User name={this.state.user.name} age={this.state.user.age} />
|
||||||
|
</div>
|
||||||
|
));
|
||||||
|
|
||||||
|
const avatar = hasAvatar && <Gravatar user={author} size={size} />;
|
||||||
|
|
||||||
|
const avatar = (hasAvatar || showPlaceholder) && (
|
||||||
|
<Gravatar user={author} size={size} />
|
||||||
|
);
|
||||||
|
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`inline-object-array.js 1`] = `
|
exports[`inline-object-array.js 1`] = `
|
||||||
prevState = prevState || {
|
prevState = prevState || {
|
||||||
catalogs: [],
|
catalogs: [],
|
||||||
|
@ -163,6 +194,23 @@ prevState = prevState ||
|
||||||
selectedCatalog: null,
|
selectedCatalog: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
prevState = prevState ||
|
||||||
|
defaultState && {
|
||||||
|
catalogs: [],
|
||||||
|
loadState: LOADED,
|
||||||
|
opened: false,
|
||||||
|
searchQuery: '',
|
||||||
|
selectedCatalog: null,
|
||||||
|
};
|
||||||
|
|
||||||
|
prevState = prevState || useDefault && defaultState || {
|
||||||
|
catalogs: [],
|
||||||
|
loadState: LOADED,
|
||||||
|
opened: false,
|
||||||
|
searchQuery: '',
|
||||||
|
selectedCatalog: null,
|
||||||
|
};
|
||||||
|
|
||||||
this.steps = steps || [
|
this.steps = steps || [
|
||||||
{
|
{
|
||||||
name: 'mock-module',
|
name: 'mock-module',
|
||||||
|
@ -170,6 +218,20 @@ this.steps = steps || [
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
this.steps = steps || checkStep && [
|
||||||
|
{
|
||||||
|
name: 'mock-module',
|
||||||
|
path: '/nux/mock-module',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
this.steps = steps && checkStep || [
|
||||||
|
{
|
||||||
|
name: 'mock-module',
|
||||||
|
path: '/nux/mock-module',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
const create = () => {
|
const create = () => {
|
||||||
const result = doSomething();
|
const result = doSomething();
|
||||||
return (
|
return (
|
||||||
|
@ -182,12 +244,26 @@ const create = () => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const create = () => {
|
||||||
|
const result = doSomething();
|
||||||
|
return (
|
||||||
|
shouldReturn && result.ok && result || {
|
||||||
|
status: "ok",
|
||||||
|
createdAt: result.createdAt,
|
||||||
|
updatedAt: result.updatedAt
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
const obj = {
|
const obj = {
|
||||||
state: shouldHaveState &&
|
state: shouldHaveState &&
|
||||||
stateIsOK && {
|
stateIsOK && {
|
||||||
loadState: LOADED,
|
loadState: LOADED,
|
||||||
opened: false
|
opened: false
|
||||||
},
|
},
|
||||||
|
loadNext: stateIsOK && hasNext || {
|
||||||
|
skipNext: true
|
||||||
|
},
|
||||||
loaded: true
|
loaded: true
|
||||||
}
|
}
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
@ -208,6 +284,25 @@ prevState = prevState ||
|
||||||
selectedCatalog: null
|
selectedCatalog: null
|
||||||
};
|
};
|
||||||
|
|
||||||
|
prevState =
|
||||||
|
prevState ||
|
||||||
|
(defaultState && {
|
||||||
|
catalogs: [],
|
||||||
|
loadState: LOADED,
|
||||||
|
opened: false,
|
||||||
|
searchQuery: "",
|
||||||
|
selectedCatalog: null
|
||||||
|
});
|
||||||
|
|
||||||
|
prevState = prevState ||
|
||||||
|
(useDefault && defaultState) || {
|
||||||
|
catalogs: [],
|
||||||
|
loadState: LOADED,
|
||||||
|
opened: false,
|
||||||
|
searchQuery: "",
|
||||||
|
selectedCatalog: null
|
||||||
|
};
|
||||||
|
|
||||||
this.steps = steps || [
|
this.steps = steps || [
|
||||||
{
|
{
|
||||||
name: "mock-module",
|
name: "mock-module",
|
||||||
|
@ -215,6 +310,22 @@ this.steps = steps || [
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
this.steps =
|
||||||
|
steps ||
|
||||||
|
(checkStep && [
|
||||||
|
{
|
||||||
|
name: "mock-module",
|
||||||
|
path: "/nux/mock-module"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
this.steps = (steps && checkStep) || [
|
||||||
|
{
|
||||||
|
name: "mock-module",
|
||||||
|
path: "/nux/mock-module"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
const create = () => {
|
const create = () => {
|
||||||
const result = doSomething();
|
const result = doSomething();
|
||||||
return (
|
return (
|
||||||
|
@ -227,12 +338,26 @@ const create = () => {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const create = () => {
|
||||||
|
const result = doSomething();
|
||||||
|
return (
|
||||||
|
(shouldReturn && result.ok && result) || {
|
||||||
|
status: "ok",
|
||||||
|
createdAt: result.createdAt,
|
||||||
|
updatedAt: result.updatedAt
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
const obj = {
|
const obj = {
|
||||||
state: shouldHaveState &&
|
state: shouldHaveState &&
|
||||||
stateIsOK && {
|
stateIsOK && {
|
||||||
loadState: LOADED,
|
loadState: LOADED,
|
||||||
opened: false
|
opened: false
|
||||||
},
|
},
|
||||||
|
loadNext: (stateIsOK && hasNext) || {
|
||||||
|
skipNext: true
|
||||||
|
},
|
||||||
loaded: true
|
loaded: true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -267,6 +392,11 @@ exports[`jsx_parent.js 1`] = `
|
||||||
{!isJellyfishEnabled &&
|
{!isJellyfishEnabled &&
|
||||||
diffUpdateMessageInput != null && <div><span>Text</span></div>}
|
diffUpdateMessageInput != null && <div><span>Text</span></div>}
|
||||||
</div>;
|
</div>;
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{!isJellyfishEnabled &&
|
||||||
|
diffUpdateMessageInput != null && child || <div><span>Text</span></div>}
|
||||||
|
</div>;
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
<div
|
<div
|
||||||
src={
|
src={
|
||||||
|
@ -301,6 +431,14 @@ exports[`jsx_parent.js 1`] = `
|
||||||
)}
|
)}
|
||||||
</div>;
|
</div>;
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{(!isJellyfishEnabled && diffUpdateMessageInput != null && child) || (
|
||||||
|
<div>
|
||||||
|
<span>Text</span>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>;
|
||||||
|
|
||||||
`;
|
`;
|
||||||
|
|
||||||
exports[`math.js 1`] = `
|
exports[`math.js 1`] = `
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
const user = renderedUser || <div><User name={this.state.user.name} age={this.state.user.age} /></div>;
|
||||||
|
|
||||||
|
const user = renderedUser || shouldRenderUser && <div><User name={this.state.user.name} age={this.state.user.age} /></div>;
|
||||||
|
|
||||||
|
const avatar = hasAvatar && <Gravatar user={author} size={size} />;
|
||||||
|
|
||||||
|
const avatar = (hasAvatar || showPlaceholder) && <Gravatar user={author} size={size} />;
|
|
@ -15,6 +15,23 @@ prevState = prevState ||
|
||||||
selectedCatalog: null,
|
selectedCatalog: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
prevState = prevState ||
|
||||||
|
defaultState && {
|
||||||
|
catalogs: [],
|
||||||
|
loadState: LOADED,
|
||||||
|
opened: false,
|
||||||
|
searchQuery: '',
|
||||||
|
selectedCatalog: null,
|
||||||
|
};
|
||||||
|
|
||||||
|
prevState = prevState || useDefault && defaultState || {
|
||||||
|
catalogs: [],
|
||||||
|
loadState: LOADED,
|
||||||
|
opened: false,
|
||||||
|
searchQuery: '',
|
||||||
|
selectedCatalog: null,
|
||||||
|
};
|
||||||
|
|
||||||
this.steps = steps || [
|
this.steps = steps || [
|
||||||
{
|
{
|
||||||
name: 'mock-module',
|
name: 'mock-module',
|
||||||
|
@ -22,6 +39,20 @@ this.steps = steps || [
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
this.steps = steps || checkStep && [
|
||||||
|
{
|
||||||
|
name: 'mock-module',
|
||||||
|
path: '/nux/mock-module',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
this.steps = steps && checkStep || [
|
||||||
|
{
|
||||||
|
name: 'mock-module',
|
||||||
|
path: '/nux/mock-module',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
const create = () => {
|
const create = () => {
|
||||||
const result = doSomething();
|
const result = doSomething();
|
||||||
return (
|
return (
|
||||||
|
@ -34,11 +65,25 @@ const create = () => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const create = () => {
|
||||||
|
const result = doSomething();
|
||||||
|
return (
|
||||||
|
shouldReturn && result.ok && result || {
|
||||||
|
status: "ok",
|
||||||
|
createdAt: result.createdAt,
|
||||||
|
updatedAt: result.updatedAt
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
const obj = {
|
const obj = {
|
||||||
state: shouldHaveState &&
|
state: shouldHaveState &&
|
||||||
stateIsOK && {
|
stateIsOK && {
|
||||||
loadState: LOADED,
|
loadState: LOADED,
|
||||||
opened: false
|
opened: false
|
||||||
},
|
},
|
||||||
|
loadNext: stateIsOK && hasNext || {
|
||||||
|
skipNext: true
|
||||||
|
},
|
||||||
loaded: true
|
loaded: true
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,3 +26,8 @@
|
||||||
{!isJellyfishEnabled &&
|
{!isJellyfishEnabled &&
|
||||||
diffUpdateMessageInput != null && <div><span>Text</span></div>}
|
diffUpdateMessageInput != null && <div><span>Text</span></div>}
|
||||||
</div>;
|
</div>;
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{!isJellyfishEnabled &&
|
||||||
|
diffUpdateMessageInput != null && child || <div><span>Text</span></div>}
|
||||||
|
</div>;
|
||||||
|
|
Loading…
Reference in New Issue