Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Side by Side Diff: PRESUBMIT.py

Issue 2532563002: Revert of Presubmit: Warn about useless forward declarations (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | PRESUBMIT_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Top-level presubmit script for Chromium. 5 """Top-level presubmit script for Chromium.
6 6
7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts 7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
8 for more details about the presubmit API built into depot_tools. 8 for more details about the presubmit API built into depot_tools.
9 """ 9 """
10 10
(...skipping 1566 matching lines...) Expand 10 before | Expand all | Expand 10 after
1577 break 1577 break
1578 1578
1579 if len(files): 1579 if len(files):
1580 return [output_api.PresubmitError( 1580 return [output_api.PresubmitError(
1581 'Do not introduce new mojom targets with use_new_wrapper_types set to ' 1581 'Do not introduce new mojom targets with use_new_wrapper_types set to '
1582 'false. The mode is deprecated and will be removed soon.', 1582 'false. The mode is deprecated and will be removed soon.',
1583 files)] 1583 files)]
1584 return [] 1584 return []
1585 1585
1586 1586
1587 def _CheckUselessForwardDeclarations(input_api, output_api):
1588 """Checks that affected header files do not contain useless class
1589 or struct forward declaration.
1590 """
1591 results = []
1592 class_pattern = input_api.re.compile(r'^class\s+(\w+);$',
1593 input_api.re.MULTILINE)
1594 struct_pattern = input_api.re.compile(r'^struct\s+(\w+);$',
1595 input_api.re.MULTILINE)
1596 for f in input_api.AffectedFiles():
1597 if not f.LocalPath().endswith('.h'):
1598 continue
1599
1600 contents = input_api.ReadFile(f)
1601 fwd_decls = input_api.re.findall(class_pattern, contents)
1602 fwd_decls.extend(input_api.re.findall(struct_pattern, contents))
1603
1604 for decl in fwd_decls:
1605 count = sum(1 for _ in input_api.re.finditer(
1606 r'\b%s\b' % input_api.re.escape(decl), contents))
1607 if count == 1:
1608 results.append(output_api.PresubmitPromptWarning(
1609 '%s: %s forward declaration seems to be useless' %
1610 (f.LocalPath(), decl)))
1611
1612 return results
1613
1614
1615 def _CheckAndroidToastUsage(input_api, output_api): 1587 def _CheckAndroidToastUsage(input_api, output_api):
1616 """Checks that code uses org.chromium.ui.widget.Toast instead of 1588 """Checks that code uses org.chromium.ui.widget.Toast instead of
1617 android.widget.Toast (Chromium Toast doesn't force hardware 1589 android.widget.Toast (Chromium Toast doesn't force hardware
1618 acceleration on low-end devices, saving memory). 1590 acceleration on low-end devices, saving memory).
1619 """ 1591 """
1620 toast_import_pattern = input_api.re.compile( 1592 toast_import_pattern = input_api.re.compile(
1621 r'^import android\.widget\.Toast;$') 1593 r'^import android\.widget\.Toast;$')
1622 1594
1623 errors = [] 1595 errors = []
1624 1596
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
2054 results.extend(_CheckNoDeprecatedJS(input_api, output_api)) 2026 results.extend(_CheckNoDeprecatedJS(input_api, output_api))
2055 results.extend(_CheckParseErrors(input_api, output_api)) 2027 results.extend(_CheckParseErrors(input_api, output_api))
2056 results.extend(_CheckForIPCRules(input_api, output_api)) 2028 results.extend(_CheckForIPCRules(input_api, output_api))
2057 results.extend(_CheckForWindowsLineEndings(input_api, output_api)) 2029 results.extend(_CheckForWindowsLineEndings(input_api, output_api))
2058 results.extend(_CheckSingletonInHeaders(input_api, output_api)) 2030 results.extend(_CheckSingletonInHeaders(input_api, output_api))
2059 results.extend(_CheckNoDeprecatedCompiledResourcesGYP(input_api, output_api)) 2031 results.extend(_CheckNoDeprecatedCompiledResourcesGYP(input_api, output_api))
2060 results.extend(_CheckPydepsNeedsUpdating(input_api, output_api)) 2032 results.extend(_CheckPydepsNeedsUpdating(input_api, output_api))
2061 results.extend(_CheckJavaStyle(input_api, output_api)) 2033 results.extend(_CheckJavaStyle(input_api, output_api))
2062 results.extend(_CheckIpcOwners(input_api, output_api)) 2034 results.extend(_CheckIpcOwners(input_api, output_api))
2063 results.extend(_CheckMojoUsesNewWrapperTypes(input_api, output_api)) 2035 results.extend(_CheckMojoUsesNewWrapperTypes(input_api, output_api))
2064 results.extend(_CheckUselessForwardDeclarations(input_api, output_api))
2065 2036
2066 if any('PRESUBMIT.py' == f.LocalPath() for f in input_api.AffectedFiles()): 2037 if any('PRESUBMIT.py' == f.LocalPath() for f in input_api.AffectedFiles()):
2067 results.extend(input_api.canned_checks.RunUnitTestsInDirectory( 2038 results.extend(input_api.canned_checks.RunUnitTestsInDirectory(
2068 input_api, output_api, 2039 input_api, output_api,
2069 input_api.PresubmitLocalPath(), 2040 input_api.PresubmitLocalPath(),
2070 whitelist=[r'^PRESUBMIT_test\.py$'])) 2041 whitelist=[r'^PRESUBMIT_test\.py$']))
2071 return results 2042 return results
2072 2043
2073 2044
2074 def _CheckAuthorizedAuthor(input_api, output_api): 2045 def _CheckAuthorizedAuthor(input_api, output_api):
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
2335 results.extend(input_api.canned_checks.CheckTreeIsOpen( 2306 results.extend(input_api.canned_checks.CheckTreeIsOpen(
2336 input_api, 2307 input_api,
2337 output_api, 2308 output_api,
2338 json_url='http://chromium-status.appspot.com/current?format=json')) 2309 json_url='http://chromium-status.appspot.com/current?format=json'))
2339 2310
2340 results.extend(input_api.canned_checks.CheckChangeHasBugField( 2311 results.extend(input_api.canned_checks.CheckChangeHasBugField(
2341 input_api, output_api)) 2312 input_api, output_api))
2342 results.extend(input_api.canned_checks.CheckChangeHasDescription( 2313 results.extend(input_api.canned_checks.CheckChangeHasDescription(
2343 input_api, output_api)) 2314 input_api, output_api))
2344 return results 2315 return results
OLDNEW
« no previous file with comments | « no previous file | PRESUBMIT_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698