diff options
Diffstat (limited to 'python')
-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): |