Skip to content

Commit

Permalink
Merge pull request #1031 from pkesseli/cpplint/allow-anonymous-namesp…
Browse files Browse the repository at this point in the history
…aces

Allow anonymous namespaces
  • Loading branch information
Daniel Kroening authored Jul 17, 2017
2 parents 71e973c + 427194c commit d80b10e
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 3 deletions.
34 changes: 34 additions & 0 deletions regression/cpp-linter/namespace/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// Author: Pascal Kesseli, [email protected]

namespace asdf {}

namespace
asdf
{}

namespace
asdf
{}

namespace


asdf
{}

namespace xyz = my::nested::namespaces;



namespace {}

namespace
{ }

namespace
{
}

namespace
{
}
11 changes: 11 additions & 0 deletions regression/cpp-linter/namespace/test.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
CORE
main.cpp

main\.cpp:3: Do not use namespaces \[readability/namespace\] \[4\]
main\.cpp:5: Do not use namespaces \[readability/namespace\] \[4\]
main\.cpp:9: Do not use namespaces \[readability/namespace\] \[4\]
main\.cpp:13: Do not use namespaces \[readability/namespace\] \[4\]
main\.cpp:19: Do not use namespaces \[readability/namespace\] \[4\]
^EXIT=1$
^SIGNAL=0$
--
19 changes: 16 additions & 3 deletions scripts/cpplint.py
Original file line number Diff line number Diff line change
Expand Up @@ -6216,9 +6216,22 @@ def CheckItemIndentationInNamespace(filename, raw_lines_no_comments, linenum,

def CheckNamespaceOrUsing(filename, clean_lines, linenum, error):
line = clean_lines.elided[linenum]
if Match(r'^namespace(\s|$)', line):
error(filename, linenum, 'readability/namespace', 4,
'Do not use namespaces')
if Match(r'^\s*namespace(\s+.*)?$', line):
num_lines=len(clean_lines.elided)
current_linenum=linenum
while current_linenum<num_lines:
current_line=clean_lines.elided[current_linenum]
if current_linenum==linenum:
is_named=Match(r'^\s*namespace\s+[^\s{]+.*$', current_line)
else:
is_named=Match(r'^\s*[^\s{]+.*$', current_line)
if is_named:
error(filename, linenum, 'readability/namespace', 4,
'Do not use namespaces')
break
if '{' in current_line:
break
current_linenum+=1
if Match(r'^using\s', line):
error(filename, linenum, 'readability/namespace', 4,
'Do not use using')
Expand Down

0 comments on commit d80b10e

Please sign in to comment.