Don't trim substitution if it's only whitespace
This commit is contained in:
parent
370c816a71
commit
c2cff68d84
@ -268,7 +268,10 @@ fn primary_span_formatted<'a>(
|
|||||||
SuggestionStyle::ShowAlways,
|
SuggestionStyle::ShowAlways,
|
||||||
].contains(&sugg.style)
|
].contains(&sugg.style)
|
||||||
{
|
{
|
||||||
let substitution = &sugg.substitutions[0].parts[0].snippet.trim();
|
// Don't trim the substitution if it's only whitespace changes
|
||||||
|
let substitution = &sugg.substitutions[0].parts[0].snippet;
|
||||||
|
let substitution =
|
||||||
|
if substitution.trim().is_empty() { substitution } else { substitution.trim() };
|
||||||
let msg = if substitution.is_empty() || sugg.style.hide_inline() {
|
let msg = if substitution.is_empty() || sugg.style.hide_inline() {
|
||||||
// This substitution is only removal OR we explicitly don't want to show the
|
// This substitution is only removal OR we explicitly don't want to show the
|
||||||
// code inline (`hide_inline`). Therefore, we don't show the substitution.
|
// code inline (`hide_inline`). Therefore, we don't show the substitution.
|
||||||
@ -1880,16 +1883,23 @@ fn emit_suggestion_default(
|
|||||||
let span_start_pos = sm.lookup_char_pos(part.span.lo()).col_display;
|
let span_start_pos = sm.lookup_char_pos(part.span.lo()).col_display;
|
||||||
let span_end_pos = sm.lookup_char_pos(part.span.hi()).col_display;
|
let span_end_pos = sm.lookup_char_pos(part.span.hi()).col_display;
|
||||||
|
|
||||||
|
// If this addition is _only_ whitespace, then don't trim it,
|
||||||
|
// or else we're just not rendering anything.
|
||||||
|
let is_whitespace_addition = part.snippet.trim().is_empty();
|
||||||
|
|
||||||
// Do not underline the leading...
|
// Do not underline the leading...
|
||||||
let start = part.snippet.len().saturating_sub(part.snippet.trim_start().len());
|
let start = if is_whitespace_addition {
|
||||||
|
0
|
||||||
|
} else {
|
||||||
|
part.snippet.len().saturating_sub(part.snippet.trim_start().len())
|
||||||
|
};
|
||||||
// ...or trailing spaces. Account for substitutions containing unicode
|
// ...or trailing spaces. Account for substitutions containing unicode
|
||||||
// characters.
|
// characters.
|
||||||
let sub_len: usize = part
|
let sub_len: usize =
|
||||||
.snippet
|
if is_whitespace_addition { &part.snippet } else { part.snippet.trim() }
|
||||||
.trim()
|
.chars()
|
||||||
.chars()
|
.map(|ch| unicode_width::UnicodeWidthChar::width(ch).unwrap_or(1))
|
||||||
.map(|ch| unicode_width::UnicodeWidthChar::width(ch).unwrap_or(1))
|
.sum();
|
||||||
.sum();
|
|
||||||
|
|
||||||
let offset: isize = offsets
|
let offset: isize = offsets
|
||||||
.iter()
|
.iter()
|
||||||
@ -2130,7 +2140,7 @@ fn draw_code_line(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
enum DisplaySuggestion {
|
enum DisplaySuggestion {
|
||||||
Underline,
|
Underline,
|
||||||
Diff,
|
Diff,
|
||||||
|
@ -14,7 +14,7 @@ LL | #![warn(rust_2021_prefixes_incompatible_syntax)]
|
|||||||
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
||||||
|
|
|
|
||||||
LL | m2!(z "hey");
|
LL | m2!(z "hey");
|
||||||
|
|
| +
|
||||||
|
|
||||||
warning: prefix `prefix` is unknown
|
warning: prefix `prefix` is unknown
|
||||||
--> $DIR/reserved-prefixes-migration.rs:19:9
|
--> $DIR/reserved-prefixes-migration.rs:19:9
|
||||||
@ -27,7 +27,7 @@ LL | m2!(prefix"hey");
|
|||||||
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
||||||
|
|
|
|
||||||
LL | m2!(prefix "hey");
|
LL | m2!(prefix "hey");
|
||||||
|
|
| +
|
||||||
|
|
||||||
warning: prefix `hey` is unknown
|
warning: prefix `hey` is unknown
|
||||||
--> $DIR/reserved-prefixes-migration.rs:22:9
|
--> $DIR/reserved-prefixes-migration.rs:22:9
|
||||||
@ -40,7 +40,7 @@ LL | m3!(hey#123);
|
|||||||
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
||||||
|
|
|
|
||||||
LL | m3!(hey #123);
|
LL | m3!(hey #123);
|
||||||
|
|
| +
|
||||||
|
|
||||||
warning: prefix `hey` is unknown
|
warning: prefix `hey` is unknown
|
||||||
--> $DIR/reserved-prefixes-migration.rs:25:9
|
--> $DIR/reserved-prefixes-migration.rs:25:9
|
||||||
@ -53,7 +53,7 @@ LL | m3!(hey#hey);
|
|||||||
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
||||||
|
|
|
|
||||||
LL | m3!(hey #hey);
|
LL | m3!(hey #hey);
|
||||||
|
|
| +
|
||||||
|
|
||||||
warning: prefix `kind` is unknown
|
warning: prefix `kind` is unknown
|
||||||
--> $DIR/reserved-prefixes-migration.rs:35:14
|
--> $DIR/reserved-prefixes-migration.rs:35:14
|
||||||
@ -66,7 +66,7 @@ LL | #name = #kind#value
|
|||||||
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
||||||
|
|
|
|
||||||
LL | #name = #kind #value
|
LL | #name = #kind #value
|
||||||
|
|
| +
|
||||||
|
|
||||||
warning: 5 warnings emitted
|
warning: 5 warnings emitted
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ LL | demo3!(foo#bar);
|
|||||||
help: consider inserting whitespace here
|
help: consider inserting whitespace here
|
||||||
|
|
|
|
||||||
LL | demo3!(foo #bar);
|
LL | demo3!(foo #bar);
|
||||||
|
|
| +
|
||||||
|
|
||||||
error: prefix `foo` is unknown
|
error: prefix `foo` is unknown
|
||||||
--> $DIR/reserved-prefixes.rs:17:12
|
--> $DIR/reserved-prefixes.rs:17:12
|
||||||
@ -20,7 +20,7 @@ LL | demo2!(foo"bar");
|
|||||||
help: consider inserting whitespace here
|
help: consider inserting whitespace here
|
||||||
|
|
|
|
||||||
LL | demo2!(foo "bar");
|
LL | demo2!(foo "bar");
|
||||||
|
|
| +
|
||||||
|
|
||||||
error: prefix `foo` is unknown
|
error: prefix `foo` is unknown
|
||||||
--> $DIR/reserved-prefixes.rs:18:12
|
--> $DIR/reserved-prefixes.rs:18:12
|
||||||
@ -32,7 +32,7 @@ LL | demo2!(foo'b');
|
|||||||
help: consider inserting whitespace here
|
help: consider inserting whitespace here
|
||||||
|
|
|
|
||||||
LL | demo2!(foo 'b');
|
LL | demo2!(foo 'b');
|
||||||
|
|
| +
|
||||||
|
|
||||||
error: prefix `foo` is unknown
|
error: prefix `foo` is unknown
|
||||||
--> $DIR/reserved-prefixes.rs:20:12
|
--> $DIR/reserved-prefixes.rs:20:12
|
||||||
@ -44,7 +44,7 @@ LL | demo2!(foo'b);
|
|||||||
help: consider inserting whitespace here
|
help: consider inserting whitespace here
|
||||||
|
|
|
|
||||||
LL | demo2!(foo 'b);
|
LL | demo2!(foo 'b);
|
||||||
|
|
| +
|
||||||
|
|
||||||
error: prefix `foo` is unknown
|
error: prefix `foo` is unknown
|
||||||
--> $DIR/reserved-prefixes.rs:21:12
|
--> $DIR/reserved-prefixes.rs:21:12
|
||||||
@ -56,7 +56,7 @@ LL | demo3!(foo# bar);
|
|||||||
help: consider inserting whitespace here
|
help: consider inserting whitespace here
|
||||||
|
|
|
|
||||||
LL | demo3!(foo # bar);
|
LL | demo3!(foo # bar);
|
||||||
|
|
| +
|
||||||
|
|
||||||
error: prefix `foo` is unknown
|
error: prefix `foo` is unknown
|
||||||
--> $DIR/reserved-prefixes.rs:22:12
|
--> $DIR/reserved-prefixes.rs:22:12
|
||||||
@ -68,7 +68,7 @@ LL | demo4!(foo#! bar);
|
|||||||
help: consider inserting whitespace here
|
help: consider inserting whitespace here
|
||||||
|
|
|
|
||||||
LL | demo4!(foo #! bar);
|
LL | demo4!(foo #! bar);
|
||||||
|
|
| +
|
||||||
|
|
||||||
error: prefix `foo` is unknown
|
error: prefix `foo` is unknown
|
||||||
--> $DIR/reserved-prefixes.rs:23:12
|
--> $DIR/reserved-prefixes.rs:23:12
|
||||||
@ -80,7 +80,7 @@ LL | demo4!(foo## bar);
|
|||||||
help: consider inserting whitespace here
|
help: consider inserting whitespace here
|
||||||
|
|
|
|
||||||
LL | demo4!(foo ## bar);
|
LL | demo4!(foo ## bar);
|
||||||
|
|
| +
|
||||||
|
|
||||||
error: prefix `foo` is unknown
|
error: prefix `foo` is unknown
|
||||||
--> $DIR/reserved-prefixes.rs:25:12
|
--> $DIR/reserved-prefixes.rs:25:12
|
||||||
@ -92,7 +92,7 @@ LL | demo4!(foo#bar#);
|
|||||||
help: consider inserting whitespace here
|
help: consider inserting whitespace here
|
||||||
|
|
|
|
||||||
LL | demo4!(foo #bar#);
|
LL | demo4!(foo #bar#);
|
||||||
|
|
| +
|
||||||
|
|
||||||
error: prefix `bar` is unknown
|
error: prefix `bar` is unknown
|
||||||
--> $DIR/reserved-prefixes.rs:25:16
|
--> $DIR/reserved-prefixes.rs:25:16
|
||||||
@ -104,7 +104,7 @@ LL | demo4!(foo#bar#);
|
|||||||
help: consider inserting whitespace here
|
help: consider inserting whitespace here
|
||||||
|
|
|
|
||||||
LL | demo4!(foo#bar #);
|
LL | demo4!(foo#bar #);
|
||||||
|
|
| +
|
||||||
|
|
||||||
error: aborting due to 9 previous errors
|
error: aborting due to 9 previous errors
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user