Chromium Code Reviews| Index: PRESUBMIT.py |
| diff --git a/PRESUBMIT.py b/PRESUBMIT.py |
| index 6751f06d18b4676e92e14bba1c44d6b3379c4ed3..ef3257771fc54e033394fc69c37232684d3f7d81 100644 |
| --- a/PRESUBMIT.py |
| +++ b/PRESUBMIT.py |
| @@ -1259,6 +1259,25 @@ def _CheckNoDeprecatedCSS(input_api, output_api): |
| (fpath.LocalPath(), line_num, deprecated_value, value))) |
| return results |
| +def _CheckForOverrideAndFinalRules(input_api, output_api): |
| + """Checks for override and final used as per C++11""" |
| + override_pattern = "OVERRIDE" |
| + final_pattern = "FINAL" |
| + problems = [] |
| + for f in input_api.AffectedFiles(): |
| + if (f.LocalPath().endswith(('.cc', '.mm', '.cpp', '.h'))): |
| + for line_num, line in f.ChangedContents(): |
| + if (re.search(r"\b" + override_pattern + r"\b", line) or |
|
Mike West
2014/10/14 10:35:54
I'd suggest simply inlining the patterns here: r"\
MRV
2014/10/14 11:50:16
Done.
|
| + re.search(r"\b" + final_pattern + r"\b", line)): |
| + problems.append(' %s:%d' % (f.LocalPath(), line_num)) |
| + |
| + if not problems: |
| + return [] |
| + return [output_api.PresubmitError('Use C++11\'s |override| and' |
| + ' |final| rather than OVERRIDE and FINAL. \n' + |
| + '\n'.join(problems))] |
| + |
| + |
| def _CommonChecks(input_api, output_api): |
| """Checks common to both upload and commit.""" |
| results = [] |
| @@ -1300,6 +1319,7 @@ def _CommonChecks(input_api, output_api): |
| results.extend(_CheckNoDeprecatedCSS(input_api, output_api)) |
| results.extend(_CheckParseErrors(input_api, output_api)) |
| results.extend(_CheckForIPCRules(input_api, output_api)) |
| + results.extend(_CheckForOverrideAndFinalRules(input_api, output_api)) |
| if any('PRESUBMIT.py' == f.LocalPath() for f in input_api.AffectedFiles()): |
| results.extend(input_api.canned_checks.RunUnitTestsInDirectory( |