diff options
author | Alan Jeffrey <ajeffrey@mozilla.com> | 2017-06-06 15:38:35 -0500 |
---|---|---|
committer | Alan Jeffrey <ajeffrey@mozilla.com> | 2017-06-07 14:25:07 -0500 |
commit | 127008053881ad068673e2eeb3560b68f857dedf (patch) | |
tree | 8ca36e57f3ef215ed57bb6e4de3be51ba32c5a46 /python/tidy | |
parent | 7e273d6c9b86d6ffbf216e84ae7326976888e5ef (diff) | |
download | servo-127008053881ad068673e2eeb3560b68f857dedf.tar.gz servo-127008053881ad068673e2eeb3560b68f857dedf.zip |
Count number of braces on a line in .
Diffstat (limited to 'python/tidy')
-rw-r--r-- | python/tidy/servo_tidy/tidy.py | 13 | ||||
-rw-r--r-- | python/tidy/servo_tidy_tests/speclink.rs | 23 | ||||
-rw-r--r-- | python/tidy/servo_tidy_tests/test_tidy.py | 1 |
3 files changed, 30 insertions, 7 deletions
diff --git a/python/tidy/servo_tidy/tidy.py b/python/tidy/servo_tidy/tidy.py index 8d7e6c07b72..989b83aa505 100644 --- a/python/tidy/servo_tidy/tidy.py +++ b/python/tidy/servo_tidy/tidy.py @@ -828,8 +828,8 @@ def check_spec(file_name, lines): # Pattern representing a line with comment containing a spec link link_patt = re.compile("^\s*///? https://.+$") - # Pattern representing a line with comment - comment_patt = re.compile("^\s*///?.+$") + # Pattern representing a line with comment or attribute + comment_patt = re.compile("^\s*(///?.+|#\[.+\])$") brace_count = 0 in_impl = False @@ -851,12 +851,11 @@ def check_spec(file_name, lines): # No more comments exist above, yield warning yield (idx + 1, "method declared in webidl is missing a comment with a specification link") break - if '{' in line and in_impl: - brace_count += 1 - if '}' in line and in_impl: - if brace_count == 1: + if in_impl: + brace_count += line.count('{') + brace_count -= line.count('}') + if brace_count < 1: break - brace_count -= 1 def check_config_file(config_file, print_text=True): diff --git a/python/tidy/servo_tidy_tests/speclink.rs b/python/tidy/servo_tidy_tests/speclink.rs index 6c27a70a7d0..7cf5031a7bd 100644 --- a/python/tidy/servo_tidy_tests/speclink.rs +++ b/python/tidy/servo_tidy_tests/speclink.rs @@ -3,7 +3,30 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ impl SpecLinkMethods for SpecLink { + amacro!("Macros inside impls should trigger spec checks.") + + // Method declarations should trigger spec checks. fn Test(&self) -> f32 { + amacro!("Macros inside function declarations should not trigger spec checks."); + if unsafe { false } { + } + amacro!("Even if there's weird brace counts."); 0 } + + // A spec link. + // https://example.com/ + fn Foo() {} + + /// A spec link. + /// https://example.com/ + fn Foo() {} + + /// A spec link. + /// https://example.com/ + /// Doc comments are OK + // Regular comments are OK + #[allow(attributes_too)] + fn Foo() {} } + diff --git a/python/tidy/servo_tidy_tests/test_tidy.py b/python/tidy/servo_tidy_tests/test_tidy.py index 07dbaa020dc..e02e065bd10 100644 --- a/python/tidy/servo_tidy_tests/test_tidy.py +++ b/python/tidy/servo_tidy_tests/test_tidy.py @@ -155,6 +155,7 @@ class CheckTidiness(unittest.TestCase): tidy.SPEC_BASE_PATH = base_path errors = tidy.collect_errors_for_files(iterFile('speclink.rs'), [], [tidy.check_spec], print_text=False) self.assertEqual('method declared in webidl is missing a comment with a specification link', errors.next()[2]) + self.assertEqual('method declared in webidl is missing a comment with a specification link', errors.next()[2]) self.assertNoMoreErrors(errors) def test_script_thread(self): |