mirror of
https://github.com/google/styleguide.git
synced 2024-03-22 13:11:43 +08:00
A false positive occurs when a user specifies a using declaration for a stream operator:
10: using ns::operator<<; file.cpp:10: Missing spaces around << [whitespace/operators] [3] The regular expression has been updated to find this valid use case of the << text string. Review URL: https://codereview.appspot.com/22190043 Patch from Matt Clarkson <mattyclarkson@gmail.com>.
This commit is contained in:
parent
ab53edf6ff
commit
0075d1469a
7
cpplint/cpplint.py
vendored
7
cpplint/cpplint.py
vendored
|
@ -2681,8 +2681,11 @@ def CheckSpacing(filename, clean_lines, linenum, nesting_state, error):
|
||||||
'Missing spaces around %s' % match.group(1))
|
'Missing spaces around %s' % match.group(1))
|
||||||
# We allow no-spaces around << when used like this: 10<<20, but
|
# We allow no-spaces around << when used like this: 10<<20, but
|
||||||
# not otherwise (particularly, not when used as streams)
|
# not otherwise (particularly, not when used as streams)
|
||||||
match = Search(r'(\S)(?:L|UL|ULL|l|ul|ull)?<<(\S)', line)
|
# Also ignore using ns::operator<<;
|
||||||
if match and not (match.group(1).isdigit() and match.group(2).isdigit()):
|
match = Search(r'(operator|\S)(?:L|UL|ULL|l|ul|ull)?<<(\S)', line)
|
||||||
|
if (match and
|
||||||
|
not (match.group(1).isdigit() and match.group(2).isdigit()) and
|
||||||
|
not (match.group(1) == 'operator' and match.group(2) == ';')):
|
||||||
error(filename, linenum, 'whitespace/operators', 3,
|
error(filename, linenum, 'whitespace/operators', 3,
|
||||||
'Missing spaces around <<')
|
'Missing spaces around <<')
|
||||||
elif not Match(r'#.*include', line):
|
elif not Match(r'#.*include', line):
|
||||||
|
|
|
@ -1562,6 +1562,8 @@ class CpplintTest(CpplintTestBase):
|
||||||
'Consider using CHECK_GT instead of CHECK(a > b)'
|
'Consider using CHECK_GT instead of CHECK(a > b)'
|
||||||
' [readability/check] [2]'])
|
' [readability/check] [2]'])
|
||||||
|
|
||||||
|
self.TestLint('using some::namespace::operator<<;', '')
|
||||||
|
self.TestLint('using some::namespace::operator>>;', '')
|
||||||
self.TestLint('CHECK(x ^ (y < 42))', '')
|
self.TestLint('CHECK(x ^ (y < 42))', '')
|
||||||
self.TestLint('CHECK((x > 42) ^ (x < 54))', '')
|
self.TestLint('CHECK((x > 42) ^ (x < 54))', '')
|
||||||
self.TestLint('CHECK(a && b < 42)', '')
|
self.TestLint('CHECK(a && b < 42)', '')
|
||||||
|
|
Loading…
Reference in New Issue
Block a user