Skip to content
This repository was archived by the owner on Mar 23, 2024. It is now read-only.

Commit cd775cc

Browse files
committed
Fix: requireSpacesInForStatement account for parenthesizedExpression
Fixes #1332
1 parent b7e015b commit cd775cc

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

lib/rules/require-spaces-in-for-statement.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
*/
4242

4343
var assert = require('assert');
44+
var TokenCategorizer = require('../token-categorizer');
4445

4546
module.exports = function() {};
4647

@@ -60,8 +61,15 @@ module.exports.prototype = {
6061
file.iterateNodesByType('ForStatement', function(node) {
6162
if (node.test) {
6263
var testToken = file.getFirstNodeToken(node.test);
64+
var prevToken = file.getPrevToken(testToken);
65+
66+
if (prevToken.value === '(' &&
67+
TokenCategorizer.categorizeOpenParen(prevToken, file) === 'ParenthesizedExpression') {
68+
testToken = prevToken;
69+
prevToken = file.getPrevToken(prevToken);
70+
}
6371
errors.assert.spacesBetween({
64-
token: file.getPrevToken(testToken),
72+
token: prevToken,
6573
nextToken: testToken,
6674
exactly: 1,
6775
message: 'One space required after semicolon'

test/specs/rules/require-spaces-in-for-statement.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,10 @@ describe('rules/require-spaces-in-for-statement', function() {
4646
expect(checker.checkString('for(i=0;i<l;){}'))
4747
.to.have.one.validation.error.from('requireSpacesInForStatement');
4848
});
49+
50+
it('should not report with spaces with parenthesizedExpression #1332', function() {
51+
var parenthesizedExpression = 'for (var i = 0; (!reachEnd && (i < elementsToMove)); i++) {}';
52+
expect(checker.checkString(parenthesizedExpression)).to.have.no.errors();
53+
});
4954
});
5055
});

0 commit comments

Comments
 (0)