Fix suggestions for REVERSE_RANGE_LOOP

This commit is contained in:
mcarton 2016-06-09 23:05:48 +02:00
parent 3ae39145fc
commit e9360f7675
No known key found for this signature in database
GPG key ID: 5E427C794CBA45E8
2 changed files with 10 additions and 2 deletions

View file

@ -444,6 +444,11 @@ fn check_for_loop_reverse_range(cx: &LateContext, arg: &Expr, expr: &Expr) {
if sup {
let start_snippet = snippet(cx, start.span, "_");
let end_snippet = snippet(cx, end.span, "_");
let dots = if limits == ast::RangeLimits::Closed {
"..."
} else {
".."
};
span_lint_and_then(cx,
REVERSE_RANGE_LOOP,
@ -454,7 +459,10 @@ fn check_for_loop_reverse_range(cx: &LateContext, arg: &Expr, expr: &Expr) {
"consider using the following if \
you are attempting to iterate \
over this range in reverse",
format!("({}..{}).rev()", end_snippet, start_snippet));
format!("({end}{dots}{start}).rev()",
end=end_snippet,
dots=dots,
start=start_snippet));
});
} else if eq && limits != ast::RangeLimits::Closed {
// if they are equal, it's also problematic - this loop

View file

@ -169,7 +169,7 @@ fn main() {
for i in 10...0 {
//~^ERROR this range is empty so this for loop will never run
//~|HELP consider
//~|SUGGESTION (0..10).rev()
//~|SUGGESTION (0...10).rev()
println!("{}", i);
}