Make build/include_what_you_use more consistent
This is a cherry-pick of https://github.com/google/styleguide/pull/158/
BUG=627202
TEST=cpplint_unittest.py
Review-Url: https://codereview.chromium.org/2147593002
diff --git a/cpplint.py b/cpplint.py
index ac19165..1b2a373 100755
--- a/cpplint.py
+++ b/cpplint.py
@@ -5415,8 +5415,13 @@
continue
for pattern, template, header in _re_pattern_templates:
- if pattern.search(line):
- required[header] = (linenum, template)
+ matched = pattern.search(line)
+ if matched:
+ # Don't warn about IWYU in non-STL namespaces:
+ # (We check only the first match per line; good enough.)
+ prefix = line[:matched.start()]
+ if prefix.endswith('std::') or not prefix.endswith('::'):
+ required[header] = (linenum, template)
# The policy is that if you #include something in foo.h you don't need to
# include it again in foo.cc. Here, we will look at possible includes.