Make tidy aware of Rust multiline strings

As a result of tighter and more correct handling of character
literals, this now catches a few kinds of syntax involving lifetimes
that were previously missed, so those have been updated.
This commit is contained in:
Michael Droettboom 2017-09-18 16:08:55 -04:00
parent 5c797d1943
commit c9dafda03a
6 changed files with 55 additions and 15 deletions

View file

@ -0,0 +1,28 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// This puts a "multi-line string
// inside of a comment" and then subsequently has a hyphenated-phrase
const FOO: &'static str = "Do not confuse 'apostrophes',
They can be 'lifetimes' or 'characters'";
fn main() {
assert!(foo("test
foo-bar"));
assert!(foo("test
test2 \"
foo-bar"));
assert!(foo("test
test2 \
foo-bar"));
println!("This is a multiline string with a URL, which kinda, \
sorta looks like a comment https://github.com/servo/servo/");
}

View file

@ -266,6 +266,11 @@ class CheckTidiness(unittest.TestCase):
lst = list(file_list)
self.assertEqual([os.path.join(base_path, 'whee', 'test.rs')], lst)
def test_multiline_string(self):
errors = tidy.collect_errors_for_files(iterFile('multiline_string.rs'), [], [tidy.check_rust], print_text=True)
self.assertNoMoreErrors(errors)
def do_tests():
suite = unittest.TestLoader().loadTestsFromTestCase(CheckTidiness)
return 0 if unittest.TextTestRunner(verbosity=2).run(suite).wasSuccessful() else 1