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,
|
||||
].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() {
|
||||
// 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.
|
||||
@ -1880,13 +1883,20 @@ fn emit_suggestion_default(
|
||||
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;
|
||||
|
||||
// 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...
|
||||
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
|
||||
// characters.
|
||||
let sub_len: usize = part
|
||||
.snippet
|
||||
.trim()
|
||||
let sub_len: usize =
|
||||
if is_whitespace_addition { &part.snippet } else { part.snippet.trim() }
|
||||
.chars()
|
||||
.map(|ch| unicode_width::UnicodeWidthChar::width(ch).unwrap_or(1))
|
||||
.sum();
|
||||
@ -2130,7 +2140,7 @@ fn draw_code_line(
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
enum DisplaySuggestion {
|
||||
Underline,
|
||||
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
|
||||
|
|
||||
LL | m2!(z "hey");
|
||||
|
|
||||
| +
|
||||
|
||||
warning: prefix `prefix` is unknown
|
||||
--> $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
|
||||
|
|
||||
LL | m2!(prefix "hey");
|
||||
|
|
||||
| +
|
||||
|
||||
warning: prefix `hey` is unknown
|
||||
--> $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
|
||||
|
|
||||
LL | m3!(hey #123);
|
||||
|
|
||||
| +
|
||||
|
||||
warning: prefix `hey` is unknown
|
||||
--> $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
|
||||
|
|
||||
LL | m3!(hey #hey);
|
||||
|
|
||||
| +
|
||||
|
||||
warning: prefix `kind` is unknown
|
||||
--> $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
|
||||
|
|
||||
LL | #name = #kind #value
|
||||
|
|
||||
| +
|
||||
|
||||
warning: 5 warnings emitted
|
||||
|
||||
|
@ -8,7 +8,7 @@ LL | demo3!(foo#bar);
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL | demo3!(foo #bar);
|
||||
|
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:17:12
|
||||
@ -20,7 +20,7 @@ LL | demo2!(foo"bar");
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL | demo2!(foo "bar");
|
||||
|
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:18:12
|
||||
@ -32,7 +32,7 @@ LL | demo2!(foo'b');
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL | demo2!(foo 'b');
|
||||
|
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:20:12
|
||||
@ -44,7 +44,7 @@ LL | demo2!(foo'b);
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL | demo2!(foo 'b);
|
||||
|
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:21:12
|
||||
@ -56,7 +56,7 @@ LL | demo3!(foo# bar);
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL | demo3!(foo # bar);
|
||||
|
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:22:12
|
||||
@ -68,7 +68,7 @@ LL | demo4!(foo#! bar);
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL | demo4!(foo #! bar);
|
||||
|
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:23:12
|
||||
@ -80,7 +80,7 @@ LL | demo4!(foo## bar);
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL | demo4!(foo ## bar);
|
||||
|
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:25:12
|
||||
@ -92,7 +92,7 @@ LL | demo4!(foo#bar#);
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL | demo4!(foo #bar#);
|
||||
|
|
||||
| +
|
||||
|
||||
error: prefix `bar` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:25:16
|
||||
@ -104,7 +104,7 @@ LL | demo4!(foo#bar#);
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL | demo4!(foo#bar #);
|
||||
|
|
||||
| +
|
||||
|
||||
error: aborting due to 9 previous errors
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user