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 === "Property";
|
||||
|
||||
const logicalSubExpression = n.left.type === "LogicalExpression";
|
||||
const samePrecedenceSubExpression =
|
||||
isBinaryish(n.left) && util.shouldFlatten(n.operator, n.left.operator);
|
||||
|
||||
if (
|
||||
shouldNotIdent ||
|
||||
(shouldInlineLogicalExpression(n) && !logicalSubExpression) ||
|
||||
(shouldInlineLogicalExpression(n) && !samePrecedenceSubExpression) ||
|
||||
(!shouldInlineLogicalExpression(n) && shouldIdentIfInlining)
|
||||
) {
|
||||
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`] = `
|
||||
prevState = prevState || {
|
||||
catalogs: [],
|
||||
|
@ -163,6 +194,23 @@ prevState = prevState ||
|
|||
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 || [
|
||||
{
|
||||
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 result = doSomething();
|
||||
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 = {
|
||||
state: shouldHaveState &&
|
||||
stateIsOK && {
|
||||
loadState: LOADED,
|
||||
opened: false
|
||||
},
|
||||
loadNext: stateIsOK && hasNext || {
|
||||
skipNext: true
|
||||
},
|
||||
loaded: true
|
||||
}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -208,6 +284,25 @@ prevState = prevState ||
|
|||
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 || [
|
||||
{
|
||||
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 result = doSomething();
|
||||
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 = {
|
||||
state: shouldHaveState &&
|
||||
stateIsOK && {
|
||||
loadState: LOADED,
|
||||
opened: false
|
||||
},
|
||||
loadNext: (stateIsOK && hasNext) || {
|
||||
skipNext: true
|
||||
},
|
||||
loaded: true
|
||||
};
|
||||
|
||||
|
@ -267,6 +392,11 @@ exports[`jsx_parent.js 1`] = `
|
|||
{!isJellyfishEnabled &&
|
||||
diffUpdateMessageInput != null && <div><span>Text</span></div>}
|
||||
</div>;
|
||||
|
||||
<div>
|
||||
{!isJellyfishEnabled &&
|
||||
diffUpdateMessageInput != null && child || <div><span>Text</span></div>}
|
||||
</div>;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
<div
|
||||
src={
|
||||
|
@ -301,6 +431,14 @@ exports[`jsx_parent.js 1`] = `
|
|||
)}
|
||||
</div>;
|
||||
|
||||
<div>
|
||||
{(!isJellyfishEnabled && diffUpdateMessageInput != null && child) || (
|
||||
<div>
|
||||
<span>Text</span>
|
||||
</div>
|
||||
)}
|
||||
</div>;
|
||||
|
||||
`;
|
||||
|
||||
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,
|
||||
};
|
||||
|
||||
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 || [
|
||||
{
|
||||
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 result = doSomething();
|
||||
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 = {
|
||||
state: shouldHaveState &&
|
||||
stateIsOK && {
|
||||
loadState: LOADED,
|
||||
opened: false
|
||||
},
|
||||
loadNext: stateIsOK && hasNext || {
|
||||
skipNext: true
|
||||
},
|
||||
loaded: true
|
||||
}
|
||||
|
|
|
@ -26,3 +26,8 @@
|
|||
{!isJellyfishEnabled &&
|
||||
diffUpdateMessageInput != null && <div><span>Text</span></div>}
|
||||
</div>;
|
||||
|
||||
<div>
|
||||
{!isJellyfishEnabled &&
|
||||
diffUpdateMessageInput != null && child || <div><span>Text</span></div>}
|
||||
</div>;
|
||||
|
|
Loading…
Reference in New Issue