}
],
- fixable: "code"
+ fixable: "code",
+
+ messages: {
+ unnecessaryConditionalExpression: "Unnecessary use of boolean literals in conditional expression.",
+ unnecessaryConditionalAssignment: "Unnecessary use of conditional expression for default assignment."
+ }
},
create(context) {
if (isBooleanLiteral(node.alternate) && isBooleanLiteral(node.consequent)) {
context.report({
node,
- loc: node.consequent.loc.start,
- message: "Unnecessary use of boolean literals in conditional expression.",
+ messageId: "unnecessaryConditionalExpression",
fix(fixer) {
if (node.consequent.value === node.alternate.value) {
} else if (!defaultAssignment && matchesDefaultAssignment(node)) {
context.report({
node,
- loc: node.consequent.loc.start,
- message: "Unnecessary use of conditional expression for default assignment.",
+ messageId: "unnecessaryConditionalAssignment",
fix: fixer => {
- const shouldParenthesizeAlternate = (
- astUtils.getPrecedence(node.alternate) < OR_PRECEDENCE &&
- !astUtils.isParenthesised(sourceCode, node.alternate)
- );
+ const shouldParenthesizeAlternate =
+ (
+ astUtils.getPrecedence(node.alternate) < OR_PRECEDENCE ||
+ astUtils.isCoalesceExpression(node.alternate)
+ ) &&
+ !astUtils.isParenthesised(sourceCode, node.alternate);
const alternateText = shouldParenthesizeAlternate
? `(${sourceCode.getText(node.alternate)})`
: astUtils.getParenthesisedText(sourceCode, node.alternate);