Fix ordering use statements with braces

This commit is contained in:
UK992 2016-09-08 16:08:38 +02:00
parent 5a5a76cc5d
commit 875981ece5
2 changed files with 8 additions and 4 deletions

View file

@ -516,10 +516,13 @@ def check_rust(file_name, lines):
yield (idx + 1, "use statement spans multiple lines") yield (idx + 1, "use statement spans multiple lines")
# strip "use" from the begin and ";" from the end # strip "use" from the begin and ";" from the end
current_use = line[4:-1] current_use = line[4:-1]
if indent == current_indent and prev_use and current_use < prev_use: if prev_use:
yield(idx + 1, decl_message.format("use statement") current_use_cut = current_use.replace("{self,", ".").replace("{", ".")
+ decl_expected.format(prev_use) prev_use_cut = prev_use.replace("{self,", ".").replace("{", ".")
+ decl_found.format(current_use)) if indent == current_indent and current_use_cut < prev_use_cut:
yield(idx + 1, decl_message.format("use statement")
+ decl_expected.format(prev_use)
+ decl_found.format(current_use))
prev_use = current_use prev_use = current_use
current_indent = indent current_indent = indent

View file

@ -85,6 +85,7 @@ class CheckTidiness(unittest.TestCase):
self.assertEqual('missing space before }', errors.next()[2]) self.assertEqual('missing space before }', errors.next()[2])
self.assertTrue('use statement is not in alphabetical order' in errors.next()[2]) self.assertTrue('use statement is not in alphabetical order' in errors.next()[2])
self.assertEqual('use statement contains braces for single import', errors.next()[2]) self.assertEqual('use statement contains braces for single import', errors.next()[2])
self.assertTrue('use statement is not in alphabetical order' in errors.next()[2])
self.assertEqual('encountered whitespace following a use statement', errors.next()[2]) self.assertEqual('encountered whitespace following a use statement', errors.next()[2])
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])