test-tidy: Check for space between function name and (

Disallow an extraneous space in a function call between
the function name and the opening parenthesis in Rust
code, while ignoring macro declarations.

This commit fixes #13980.
This commit is contained in:
Daan Sprenkels 2016-10-30 19:08:14 +01:00
parent 84055461aa
commit 179e11ad8d
3 changed files with 11 additions and 1 deletions

View file

@ -442,6 +442,13 @@ def check_rust(file_name, lines):
regex_rules = [
(r",[^\s]", "missing space after ,",
lambda match, line: '$' not in line and not is_attribute),
(r"([A-Za-z0-9_]+) (\()", "extra space after {0}",
lambda match, line: not (
is_attribute or
re.match(r"\bmacro_rules!\s+", line[:match.start()]) or
re.search(r"[^']'[A-Za-z0-9_]+ \($", line[:match.end()]) or
match.group(1) in ['const', 'fn', 'for', 'if', 'in',
'let', 'match', 'mut', 'return'])),
(r"[A-Za-z0-9\"]=", "missing space before =",
lambda match, line: is_attribute),
(r"=[A-Za-z0-9\"]", "missing space after =",

View file

@ -52,7 +52,9 @@ impl test {
type Text_Fun3 = fn( i32) -> i32;
fn test_fun3<Text_Fun3>( y: Text_Fun3) {
test_fun( 1);
let (x, y) = (1, 2) // Should not trigger
test_fun( x);
test_fun (y);
}
// Should not be triggered

View file

@ -124,6 +124,7 @@ class CheckTidiness(unittest.TestCase):
self.assertEqual('extra space after (', errors.next()[2])
self.assertEqual('extra space after (', errors.next()[2])
self.assertEqual('extra space after (', errors.next()[2])
self.assertEqual('extra space after test_fun', errors.next()[2])
self.assertNoMoreErrors(errors)
def test_spec_link(self):