Skip to content

Commit 70bfcc2

Browse files
committed
move to multipart spans
1 parent 8292d07 commit 70bfcc2

File tree

7 files changed

+24
-17
lines changed

7 files changed

+24
-17
lines changed

compiler/rustc_parse/src/parser/diagnostics.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -352,12 +352,13 @@ impl<'a> Parser<'a> {
352352
// if there is a `<` after the fn name, then don't show a suggestion, show help
353353

354354
if !self.look_ahead(1, |t| *t == token::Lt) &&
355-
let Ok(snippet) = self.sess.source_map().span_to_snippet(generic.span) &&
356-
let Ok(ident) = self.sess.source_map().span_to_snippet(self.token.span) {
357-
err.span_suggestion_verbose(
358-
generic.span.to(self.token.span),
355+
let Ok(snippet) = self.sess.source_map().span_to_snippet(generic.span) {
356+
err.multipart_suggestion_verbose(
359357
format!("place the generic parameter name after the {ident_name} name"),
360-
format!(" {ident}{snippet}"),
358+
vec![
359+
(self.token.span.shrink_to_hi(), snippet),
360+
(generic.span, String::new())
361+
],
361362
Applicability::MaybeIncorrect,
362363
);
363364
} else {

tests/ui/parser/suggest_misplaced_generics/enum.stderr

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ LL | enum<T> Foo { Variant(T) }
66
|
77
help: place the generic parameter name after the enum name
88
|
9-
LL | enum Foo<T> { Variant(T) }
10-
| ~~~~~~
9+
LL - enum<T> Foo { Variant(T) }
10+
LL + enum Foo<T> { Variant(T) }
11+
|
1112

1213
error: aborting due to previous error
1314

tests/ui/parser/suggest_misplaced_generics/fn-complex-generics.stderr

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ LL | fn<'a, B: 'a + std::ops::Add<Output = u32>> f(_x: B) { }
66
|
77
help: place the generic parameter name after the fn name
88
|
9-
LL | fn f<'a, B: 'a + std::ops::Add<Output = u32>>(_x: B) { }
10-
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9+
LL - fn<'a, B: 'a + std::ops::Add<Output = u32>> f(_x: B) { }
10+
LL + fn f<'a, B: 'a + std::ops::Add<Output = u32>>(_x: B) { }
11+
|
1112

1213
error: aborting due to previous error
1314

tests/ui/parser/suggest_misplaced_generics/fn-simple.stderr

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ LL | fn<T> id(x: T) -> T { x }
66
|
77
help: place the generic parameter name after the fn name
88
|
9-
LL | fn id<T>(x: T) -> T { x }
10-
| ~~~~~
9+
LL - fn<T> id(x: T) -> T { x }
10+
LL + fn id<T>(x: T) -> T { x }
11+
|
1112

1213
error: aborting due to previous error
1314

tests/ui/parser/suggest_misplaced_generics/struct.stderr

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ LL | struct<T> Foo { x: T }
66
|
77
help: place the generic parameter name after the struct name
88
|
9-
LL | struct Foo<T> { x: T }
10-
| ~~~~~~
9+
LL - struct<T> Foo { x: T }
10+
LL + struct Foo<T> { x: T }
11+
|
1112

1213
error: aborting due to previous error
1314

tests/ui/parser/suggest_misplaced_generics/trait.stderr

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ LL | trait<T> Foo {
66
|
77
help: place the generic parameter name after the trait name
88
|
9-
LL | trait Foo<T> {
10-
| ~~~~~~
9+
LL - trait<T> Foo {
10+
LL + trait Foo<T> {
11+
|
1112

1213
error: aborting due to previous error
1314

tests/ui/parser/suggest_misplaced_generics/type.stderr

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ LL | type<T> Foo = T;
66
|
77
help: place the generic parameter name after the type name
88
|
9-
LL | type Foo<T> = T;
10-
| ~~~~~~
9+
LL - type<T> Foo = T;
10+
LL + type Foo<T> = T;
11+
|
1112

1213
error: aborting due to previous error
1314

0 commit comments

Comments
 (0)