Skip to content

Commit

Permalink
Merge pull request google#137 from piotr-semenov/semenovp_fixes
Browse files Browse the repository at this point in the history
Bug-fix: NOLINT, NOLINTNEXTLINE has no effect for lines like "};".
  • Loading branch information
eglaysher authored Jun 30, 2016
2 parents 70d6b7d + af8c843 commit fac897f
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
8 changes: 8 additions & 0 deletions cpplint/cpplint.py
Original file line number Diff line number Diff line change
Expand Up @@ -3884,6 +3884,14 @@ def CheckTrailingSemicolon(filename, clean_lines, linenum, error):
# outputting warnings for the matching closing brace, if there are
# nested blocks with trailing semicolons, we will get the error
# messages in reversed order.

# We need to check the line forward for NOLINT
raw_lines = clean_lines.raw_lines
ParseNolintSuppressions(filename, raw_lines[endlinenum-1], endlinenum-1,
error)
ParseNolintSuppressions(filename, raw_lines[endlinenum], endlinenum,
error)

error(filename, endlinenum, 'readability/braces', 4,
"You don't need a ; after a }")

Expand Down
15 changes: 15 additions & 0 deletions cpplint/cpplint_unittest.py
Original file line number Diff line number Diff line change
Expand Up @@ -521,6 +521,21 @@ def testErrorSuppression(self):
''],
error_collector)
self.assertEquals('', error_collector.Results())
# NOLINT, NOLINTNEXTLINE silences the readability/braces warning for "};".
error_collector = ErrorCollector(self.assert_)
cpplint.ProcessFileData('test.cc', 'cc',
['// Copyright 2014 Your Company.',
'for (int i = 0; i != 100; ++i) {',
'\tstd::cout << i << std::endl;',
'}; // NOLINT',
'for (int i = 0; i != 100; ++i) {',
'\tstd::cout << i << std::endl;',
'// NOLINTNEXTLINE',
'};',
'// LINT_KERNEL_FILE',
''],
error_collector)
self.assertEquals('', error_collector.Results())

# Test Variable Declarations.
def testVariableDeclarations(self):
Expand Down

0 comments on commit fac897f

Please sign in to comment.