Index: cpplint.py |
diff --git a/cpplint.py b/cpplint.py |
index ccc25d4c56b1a85391742c90c928f179b142d085..b2054ae69ca4e43058944427c43acc381b16f276 100755 |
--- a/cpplint.py |
+++ b/cpplint.py |
@@ -5645,8 +5645,13 @@ def CheckForIncludeWhatYouUse(filename, clean_lines, include_state, error, |
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. |