More accurate span for anonymous argument suggestion
Use smaller span for suggesting adding `_:` ahead of a type: ``` error: expected one of `(`, `...`, `..=`, `..`, `::`, `:`, `{`, or `|`, found `)` --> $DIR/anon-params-denied-2018.rs:12:47 | LL | fn foo_with_qualified_path(<Bar as T>::Baz); | ^ expected one of 8 possible tokens | = note: anonymous parameters are removed in the 2018 edition (see RFC 1685) help: explicitly ignore the parameter name | LL | fn foo_with_qualified_path(_: <Bar as T>::Baz); | ++ ```
This commit is contained in:
parent
032be6f7bb
commit
f6c4679547
@ -2240,11 +2240,11 @@ pub(super) fn parameter_without_type(
|
|||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
// Otherwise, try to get a type and emit a suggestion.
|
// Otherwise, try to get a type and emit a suggestion.
|
||||||
if let Some(ty) = pat.to_ty() {
|
if let Some(_) = pat.to_ty() {
|
||||||
err.span_suggestion_verbose(
|
err.span_suggestion_verbose(
|
||||||
pat.span,
|
pat.span.shrink_to_lo(),
|
||||||
"explicitly ignore the parameter name",
|
"explicitly ignore the parameter name",
|
||||||
format!("_: {}", pprust::ty_to_string(&ty)),
|
"_: ".to_string(),
|
||||||
Applicability::MachineApplicable,
|
Applicability::MachineApplicable,
|
||||||
);
|
);
|
||||||
err.note(rfc_note);
|
err.note(rfc_note);
|
||||||
@ -2256,7 +2256,7 @@ pub(super) fn parameter_without_type(
|
|||||||
|
|
||||||
// `fn foo(a, b) {}`, `fn foo(a<x>, b<y>) {}` or `fn foo(usize, usize) {}`
|
// `fn foo(a, b) {}`, `fn foo(a<x>, b<y>) {}` or `fn foo(usize, usize) {}`
|
||||||
if first_param {
|
if first_param {
|
||||||
err.span_suggestion(
|
err.span_suggestion_verbose(
|
||||||
self_span,
|
self_span,
|
||||||
"if this is a `self` type, give it a parameter name",
|
"if this is a `self` type, give it a parameter name",
|
||||||
self_sugg,
|
self_sugg,
|
||||||
@ -2266,14 +2266,14 @@ pub(super) fn parameter_without_type(
|
|||||||
// Avoid suggesting that `fn foo(HashMap<u32>)` is fixed with a change to
|
// Avoid suggesting that `fn foo(HashMap<u32>)` is fixed with a change to
|
||||||
// `fn foo(HashMap: TypeName<u32>)`.
|
// `fn foo(HashMap: TypeName<u32>)`.
|
||||||
if self.token != token::Lt {
|
if self.token != token::Lt {
|
||||||
err.span_suggestion(
|
err.span_suggestion_verbose(
|
||||||
param_span,
|
param_span,
|
||||||
"if this is a parameter name, give it a type",
|
"if this is a parameter name, give it a type",
|
||||||
param_sugg,
|
param_sugg,
|
||||||
Applicability::HasPlaceholders,
|
Applicability::HasPlaceholders,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
err.span_suggestion(
|
err.span_suggestion_verbose(
|
||||||
type_span,
|
type_span,
|
||||||
"if this is a type, explicitly ignore the parameter name",
|
"if this is a type, explicitly ignore the parameter name",
|
||||||
type_sugg,
|
type_sugg,
|
||||||
|
@ -48,7 +48,7 @@ LL | fn foo_with_qualified_path(<Bar as T>::Baz);
|
|||||||
help: explicitly ignore the parameter name
|
help: explicitly ignore the parameter name
|
||||||
|
|
|
|
||||||
LL | fn foo_with_qualified_path(_: <Bar as T>::Baz);
|
LL | fn foo_with_qualified_path(_: <Bar as T>::Baz);
|
||||||
| ~~~~~~~~~~~~~~~~~~
|
| ++
|
||||||
|
|
||||||
error: expected one of `(`, `...`, `..=`, `..`, `::`, `:`, `{`, or `|`, found `)`
|
error: expected one of `(`, `...`, `..=`, `..`, `::`, `:`, `{`, or `|`, found `)`
|
||||||
--> $DIR/anon-params-denied-2018.rs:15:56
|
--> $DIR/anon-params-denied-2018.rs:15:56
|
||||||
@ -60,7 +60,7 @@ LL | fn foo_with_qualified_path_and_ref(&<Bar as T>::Baz);
|
|||||||
help: explicitly ignore the parameter name
|
help: explicitly ignore the parameter name
|
||||||
|
|
|
|
||||||
LL | fn foo_with_qualified_path_and_ref(_: &<Bar as T>::Baz);
|
LL | fn foo_with_qualified_path_and_ref(_: &<Bar as T>::Baz);
|
||||||
| ~~~~~~~~~~~~~~~~~~~
|
| ++
|
||||||
|
|
||||||
error: expected one of `(`, `...`, `..=`, `..`, `::`, `:`, `{`, or `|`, found `,`
|
error: expected one of `(`, `...`, `..=`, `..`, `::`, `:`, `{`, or `|`, found `,`
|
||||||
--> $DIR/anon-params-denied-2018.rs:18:57
|
--> $DIR/anon-params-denied-2018.rs:18:57
|
||||||
@ -72,7 +72,7 @@ LL | fn foo_with_multiple_qualified_paths(<Bar as T>::Baz, <Bar as T>::Baz);
|
|||||||
help: explicitly ignore the parameter name
|
help: explicitly ignore the parameter name
|
||||||
|
|
|
|
||||||
LL | fn foo_with_multiple_qualified_paths(_: <Bar as T>::Baz, <Bar as T>::Baz);
|
LL | fn foo_with_multiple_qualified_paths(_: <Bar as T>::Baz, <Bar as T>::Baz);
|
||||||
| ~~~~~~~~~~~~~~~~~~
|
| ++
|
||||||
|
|
||||||
error: expected one of `(`, `...`, `..=`, `..`, `::`, `:`, `{`, or `|`, found `)`
|
error: expected one of `(`, `...`, `..=`, `..`, `::`, `:`, `{`, or `|`, found `)`
|
||||||
--> $DIR/anon-params-denied-2018.rs:18:74
|
--> $DIR/anon-params-denied-2018.rs:18:74
|
||||||
@ -84,7 +84,7 @@ LL | fn foo_with_multiple_qualified_paths(<Bar as T>::Baz, <Bar as T>::Baz);
|
|||||||
help: explicitly ignore the parameter name
|
help: explicitly ignore the parameter name
|
||||||
|
|
|
|
||||||
LL | fn foo_with_multiple_qualified_paths(<Bar as T>::Baz, _: <Bar as T>::Baz);
|
LL | fn foo_with_multiple_qualified_paths(<Bar as T>::Baz, _: <Bar as T>::Baz);
|
||||||
| ~~~~~~~~~~~~~~~~~~
|
| ++
|
||||||
|
|
||||||
error: expected one of `:`, `@`, or `|`, found `,`
|
error: expected one of `:`, `@`, or `|`, found `,`
|
||||||
--> $DIR/anon-params-denied-2018.rs:22:36
|
--> $DIR/anon-params-denied-2018.rs:22:36
|
||||||
|
Loading…
Reference in New Issue
Block a user