Skip to content

Commit d73d7d3

Browse files
authored
fix(eslint-plugin): [no-confusing-void-expression] check sequence expressions for void is in last position (#6597)
Sequence expression check and tests
1 parent f3c6373 commit d73d7d3

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

packages/eslint-plugin/src/rules/no-confusing-void-expression.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ export default util.createRule<Options, MessageId>({
205205
suggest: [{ messageId: 'voidExprWrapVoid', fix: wrapVoidFix }],
206206
});
207207
}
208+
208209
context.report({
209210
node,
210211
messageId: 'invalidVoidExpr',
@@ -225,6 +226,11 @@ export default util.createRule<Options, MessageId>({
225226
node.parent,
226227
util.NullThrowsReasons.MissingParent,
227228
);
229+
if (parent.type === AST_NODE_TYPES.SequenceExpression) {
230+
if (node !== parent.expressions[parent.expressions.length - 1]) {
231+
return null;
232+
}
233+
}
228234

229235
if (parent.type === AST_NODE_TYPES.ExpressionStatement) {
230236
// e.g. `{ console.log("foo"); }`

packages/eslint-plugin/tests/rules/no-confusing-void-expression.test.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,18 @@ ruleTester.run('no-confusing-void-expression', rule, {
5757
return void console.log('foo');
5858
`,
5959
}),
60+
`
61+
function cool(input: string) {
62+
return console.log(input), input;
63+
}
64+
`,
65+
{
66+
code: `
67+
function cool(input: string) {
68+
return input, console.log(input), input;
69+
}
70+
`,
71+
},
6072
],
6173

6274
invalid: [
@@ -87,6 +99,14 @@ ruleTester.run('no-confusing-void-expression', rule, {
8799
],
88100
}),
89101

102+
{
103+
code: `
104+
function notcool(input: string) {
105+
return input, console.log(input);
106+
}
107+
`,
108+
errors: [{ line: 3, column: 17, messageId: 'invalidVoidExpr' }],
109+
},
90110
{
91111
code: "() => console.log('foo');",
92112
errors: [{ line: 1, column: 7, messageId: 'invalidVoidExprArrow' }],

0 commit comments

Comments
 (0)