mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Automatically verify that derive() lists are alphabetically ordered
This commit is contained in:
parent
16c1446137
commit
ab73f3d61d
3 changed files with 15 additions and 0 deletions
|
@ -691,6 +691,19 @@ def check_rust(file_name, lines):
|
||||||
# we now erase previous entries
|
# we now erase previous entries
|
||||||
prev_mod = {}
|
prev_mod = {}
|
||||||
|
|
||||||
|
# derivable traits should be alphabetically ordered
|
||||||
|
if is_attribute:
|
||||||
|
# match the derivable traits filtering out macro expansions
|
||||||
|
match = re.search(r"#\[derive\(([a-zA-Z, ]*)", line)
|
||||||
|
if match:
|
||||||
|
derives = map(lambda w: w.strip(), match.group(1).split(','))
|
||||||
|
# sort, compare and report
|
||||||
|
sorted_derives = sorted(derives)
|
||||||
|
if sorted_derives != derives:
|
||||||
|
yield(idx + 1, decl_message.format("derivable traits list")
|
||||||
|
+ decl_expected.format(", ".join(sorted_derives))
|
||||||
|
+ decl_found.format(", ".join(derives)))
|
||||||
|
|
||||||
|
|
||||||
# Avoid flagging <Item=Foo> constructs
|
# Avoid flagging <Item=Foo> constructs
|
||||||
def is_associated_type(match, line):
|
def is_associated_type(match, line):
|
||||||
|
|
|
@ -21,6 +21,7 @@ extern crate webrender_api;
|
||||||
extern crate style_traits;
|
extern crate style_traits;
|
||||||
|
|
||||||
#[foo = "bar,baz"]
|
#[foo = "bar,baz"]
|
||||||
|
#[derive(Copy,Debug, ComputeSquaredDistance)]
|
||||||
impl test {
|
impl test {
|
||||||
|
|
||||||
fn test_fun(y:f32)->f32{
|
fn test_fun(y:f32)->f32{
|
||||||
|
|
|
@ -107,6 +107,7 @@ class CheckTidiness(unittest.TestCase):
|
||||||
self.assertTrue('mod declaration is not in alphabetical order' in errors.next()[2])
|
self.assertTrue('mod declaration is not in alphabetical order' in errors.next()[2])
|
||||||
self.assertEqual('mod declaration spans multiple lines', errors.next()[2])
|
self.assertEqual('mod declaration spans multiple lines', errors.next()[2])
|
||||||
self.assertTrue('extern crate declaration is not in alphabetical order' in errors.next()[2])
|
self.assertTrue('extern crate declaration is not in alphabetical order' in errors.next()[2])
|
||||||
|
self.assertTrue('derivable traits list is not in alphabetical order' in errors.next()[2])
|
||||||
self.assertEqual('found an empty line following a {', errors.next()[2])
|
self.assertEqual('found an empty line following a {', errors.next()[2])
|
||||||
self.assertEqual('missing space before ->', errors.next()[2])
|
self.assertEqual('missing space before ->', errors.next()[2])
|
||||||
self.assertEqual('missing space after ->', errors.next()[2])
|
self.assertEqual('missing space after ->', errors.next()[2])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue