diff --git a/cpplint.py b/cpplint.py index 3306d73..765e1d9 100755 --- a/cpplint.py +++ b/cpplint.py @@ -246,6 +246,7 @@ 'build/include_alpha', 'build/include_order', 'build/include_what_you_use', + 'build/namespaces_literals', 'build/namespaces', 'build/printf_format', 'build/storage_class', @@ -5046,9 +5047,14 @@ def CheckLanguage(filename, clean_lines, linenum, file_extension, % (match.group(1), match.group(2))) if Search(r'\busing namespace\b', line): - error(filename, linenum, 'build/namespaces', 5, - 'Do not use namespace using-directives. ' - 'Use using-declarations instead.') + if Search(r'\bliterals\b', line): + error(filename, linenum, 'build/namespaces_literals', 5, + 'Do not use namespace using-directives. ' + 'Use using-declarations instead.') + else: + error(filename, linenum, 'build/namespaces', 5, + 'Do not use namespace using-directives. ' + 'Use using-declarations instead.') # Detect variable-length arrays. match = Match(r'\s*(.+::)?(\w+) [a-z]\w*\[(.+)];', line) diff --git a/cpplint_unittest.py b/cpplint_unittest.py index 9f54a30..228360d 100755 --- a/cpplint_unittest.py +++ b/cpplint_unittest.py @@ -2927,6 +2927,10 @@ def DoTest(self, lines): DoTest(self, ['', '', '', 'using namespace foo;']) DoTest(self, ['// hello', 'using namespace foo;']) + def testUsingLiteralsNamespaces(self): + self.TestLint('using namespace std::literals;', 'Do not use namespace using-directives. Use using-declarations instead. [build/namespaces_literals] [5]') + self.TestLint('using namespace std::literals::chrono_literals;', 'Do not use namespace using-directives. Use using-declarations instead. [build/namespaces_literals] [5]') + def testNewlineAtEOF(self): def DoTest(self, data, is_missing_eof): error_collector = ErrorCollector(self.assertTrue)