OLD | NEW |
1 # -*- coding: utf-8 -*- | 1 # -*- coding: utf-8 -*- |
2 # | 2 # |
3 # Copyright (C) 2009, 2010, 2012 Google Inc. All rights reserved. | 3 # Copyright (C) 2009, 2010, 2012 Google Inc. All rights reserved. |
4 # Copyright (C) 2009 Torch Mobile Inc. | 4 # Copyright (C) 2009 Torch Mobile Inc. |
5 # Copyright (C) 2009 Apple Inc. All rights reserved. | 5 # Copyright (C) 2009 Apple Inc. All rights reserved. |
6 # Copyright (C) 2010 Chris Jerdonek (cjerdonek@webkit.org) | 6 # Copyright (C) 2010 Chris Jerdonek (cjerdonek@webkit.org) |
7 # | 7 # |
8 # Redistribution and use in source and binary forms, with or without | 8 # Redistribution and use in source and binary forms, with or without |
9 # modification, are permitted provided that the following conditions are | 9 # modification, are permitted provided that the following conditions are |
10 # met: | 10 # met: |
(...skipping 2778 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2789 know_whether_using_braces = True | 2789 know_whether_using_braces = True |
2790 using_braces = current_arm_uses_brace | 2790 using_braces = current_arm_uses_brace |
2791 | 2791 |
2792 if using_braces: | 2792 if using_braces: |
2793 # Skip over the entire arm. | 2793 # Skip over the entire arm. |
2794 current_pos = close_expression(lines, current_pos) | 2794 current_pos = close_expression(lines, current_pos) |
2795 if current_pos.column < 0: | 2795 if current_pos.column < 0: |
2796 return | 2796 return |
2797 else: | 2797 else: |
2798 # Skip over the current expression. | 2798 # Skip over the current expression. |
2799 current_line_number = current_pos.row | |
2800 current_pos = _find_in_lines(r';', lines, current_pos, None) | 2799 current_pos = _find_in_lines(r';', lines, current_pos, None) |
2801 if not current_pos: | 2800 if not current_pos: |
2802 return | 2801 return |
2803 # If the end of the expression is beyond the line just after | 2802 # If the end of the expression is beyond the line just after |
2804 # the close parenthesis or control clause, we've found a | 2803 # the close parenthesis or control clause, we've found a |
2805 # single-expression arm that spans multiple lines. (We don't | 2804 # single-expression arm that spans multiple lines. (We don't |
2806 # fire this error for expressions ending on the same line; that | 2805 # fire this error for expressions ending on the same line; that |
2807 # is a different error, handled elsewhere.) | 2806 # is a different error, handled elsewhere.) |
2808 if current_pos.row > 1 + end_line_of_conditional: | 2807 if current_pos.row > 1 + end_line_of_conditional: |
2809 error(current_pos.row, 'whitespace/braces', 4, | 2808 error(current_pos.row, 'whitespace/braces', 4, |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2887 # Look for "override" or "final" after the parameter list | 2886 # Look for "override" or "final" after the parameter list |
2888 # (possibly on the next few lines). | 2887 # (possibly on the next few lines). |
2889 for i in xrange(end_position.row, min(end_position.row + 3, clean_lines.num_
lines())): | 2888 for i in xrange(end_position.row, min(end_position.row + 3, clean_lines.num_
lines())): |
2890 line = clean_lines.elided[i][end_position.column:] | 2889 line = clean_lines.elided[i][end_position.column:] |
2891 override_or_final = search(r'\b(override|final)\b', line) | 2890 override_or_final = search(r'\b(override|final)\b', line) |
2892 if override_or_final: | 2891 if override_or_final: |
2893 error(linenum, 'readability/inheritance', 4, | 2892 error(linenum, 'readability/inheritance', 4, |
2894 ('"virtual" is redundant since function is ' | 2893 ('"virtual" is redundant since function is ' |
2895 'already declared as "%s"' % override_or_final.group(1))) | 2894 'already declared as "%s"' % override_or_final.group(1))) |
2896 | 2895 |
2897 # Set end_col to check whole lines after we are done with the | |
2898 # first line. | |
2899 end_col = 0 | |
2900 if search(r'[^\w]\s*$', line): | 2896 if search(r'[^\w]\s*$', line): |
2901 break | 2897 break |
2902 | 2898 |
2903 | 2899 |
2904 def check_redundant_override(clean_lines, linenum, error): | 2900 def check_redundant_override(clean_lines, linenum, error): |
2905 """Checks if line contains a redundant "override" virt-specifier. | 2901 """Checks if line contains a redundant "override" virt-specifier. |
2906 | 2902 |
2907 Args: | 2903 Args: |
2908 clean_lines: A CleansedLines instance containing the file. | 2904 clean_lines: A CleansedLines instance containing the file. |
2909 linenum: The number of the line to check. | 2905 linenum: The number of the line to check. |
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3590 | 3586 |
3591 Args: | 3587 Args: |
3592 filename: The name of the header file in which to check for toFoo definiti
on. | 3588 filename: The name of the header file in which to check for toFoo definiti
on. |
3593 pattern: The conversion function pattern to grep for. | 3589 pattern: The conversion function pattern to grep for. |
3594 error: The function to call with any errors found. | 3590 error: The function to call with any errors found. |
3595 """ | 3591 """ |
3596 def get_abs_filepath(filename): | 3592 def get_abs_filepath(filename): |
3597 fileSystem = FileSystem() | 3593 fileSystem = FileSystem() |
3598 base_dir = fileSystem.path_to_module(FileSystem.__module__).split('WebKi
t', 1)[0] | 3594 base_dir = fileSystem.path_to_module(FileSystem.__module__).split('WebKi
t', 1)[0] |
3599 base_dir = ''.join((base_dir, 'WebKit/Source')) | 3595 base_dir = ''.join((base_dir, 'WebKit/Source')) |
3600 for root, dirs, names in os.walk(base_dir): | 3596 for root, _, names in os.walk(base_dir): |
3601 if filename in names: | 3597 if filename in names: |
3602 return os.path.join(root, filename) | 3598 return os.path.join(root, filename) |
3603 return None | 3599 return None |
3604 | 3600 |
3605 def grep(lines, pattern, error): | 3601 def grep(lines, pattern, error): |
3606 matches = [] | 3602 matches = [] |
3607 function_state = None | 3603 function_state = None |
3608 for line_number in xrange(lines.num_lines()): | 3604 for line_number in xrange(lines.num_lines()): |
3609 line = (lines.elided[line_number]).rstrip() | 3605 line = (lines.elided[line_number]).rstrip() |
3610 try: | 3606 try: |
(...skipping 602 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4213 | 4209 |
4214 def check(self, lines): | 4210 def check(self, lines): |
4215 _process_lines(self.file_path, self.file_extension, lines, | 4211 _process_lines(self.file_path, self.file_extension, lines, |
4216 self.handle_style_error, self.min_confidence) | 4212 self.handle_style_error, self.min_confidence) |
4217 | 4213 |
4218 | 4214 |
4219 # FIXME: Remove this function (requires refactoring unit tests). | 4215 # FIXME: Remove this function (requires refactoring unit tests). |
4220 def process_file_data(filename, file_extension, lines, error, min_confidence, fs
=None): | 4216 def process_file_data(filename, file_extension, lines, error, min_confidence, fs
=None): |
4221 checker = CppChecker(filename, file_extension, error, min_confidence, fs) | 4217 checker = CppChecker(filename, file_extension, error, min_confidence, fs) |
4222 checker.check(lines) | 4218 checker.check(lines) |
OLD | NEW |