Use non-short suggestion for parenthesised ..=

This commit is contained in:
varkor 2018-11-10 21:27:40 +00:00
parent c148714549
commit c63df7c64f
3 changed files with 19 additions and 13 deletions

View File

@ -1432,20 +1432,26 @@ fn matches_ellipsis_pat(pat: &ast::Pat) -> Option<(&P<Expr>, &P<Expr>, Span)> {
if let Some((start, end, join)) = endpoints {
let msg = "`...` range patterns are deprecated";
let suggestion = "use `..=` for an inclusive range";
let (span, replacement) = if parenthesise {
if parenthesise {
*visit_subpats = false;
(pat.span, format!("&({}..={})", expr_to_string(&start), expr_to_string(&end)))
let mut err = cx.struct_span_lint(ELLIPSIS_INCLUSIVE_RANGE_PATTERNS, pat.span, msg);
err.span_suggestion_with_applicability(
pat.span,
suggestion,
format!("&({}..={})", expr_to_string(&start), expr_to_string(&end)),
Applicability::MachineApplicable,
);
err.emit();
} else {
(join, "..=".to_owned())
let mut err = cx.struct_span_lint(ELLIPSIS_INCLUSIVE_RANGE_PATTERNS, join, msg);
err.span_suggestion_short_with_applicability(
join,
suggestion,
"..=".to_owned(),
Applicability::MachineApplicable,
);
err.emit();
};
let mut err = cx.struct_span_lint(ELLIPSIS_INCLUSIVE_RANGE_PATTERNS, span, msg);
err.span_suggestion_short_with_applicability(
span,
suggestion,
replacement,
Applicability::MachineApplicable,
);
err.emit();
}
}
}

View File

@ -14,5 +14,5 @@ warning: `...` range patterns are deprecated
--> $DIR/inclusive-range-pattern-syntax.rs:25:9
|
LL | &1...2 => {}
| ^^^^^^ help: use `..=` for an inclusive range
| ^^^^^^ help: use `..=` for an inclusive range: `&(1..=2)`

View File

@ -14,7 +14,7 @@ warning: `...` range patterns are deprecated
--> $DIR/range-inclusive-pattern-precedence.rs:24:9
|
LL | &0...9 => {}
| ^^^^^^ help: use `..=` for an inclusive range
| ^^^^^^ help: use `..=` for an inclusive range: `&(0..=9)`
|
note: lint level defined here
--> $DIR/range-inclusive-pattern-precedence.rs:19:9