mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
Rollup merge of #101700 - compiler-errors:deletion-span, r=davidtwco
A `SubstitutionPart` is not considered a deletion if it replaces nothing with nothing Fixes #101689
This commit is contained in:
commit
adcd1fbf2e
@ -1704,7 +1704,7 @@ impl EmitterWriter {
|
||||
{
|
||||
notice_capitalization |= only_capitalization;
|
||||
|
||||
let has_deletion = parts.iter().any(|p| p.is_deletion());
|
||||
let has_deletion = parts.iter().any(|p| p.is_deletion(sm));
|
||||
let is_multiline = complete.lines().count() > 1;
|
||||
|
||||
if let Some(span) = span.primary_span() {
|
||||
@ -1880,16 +1880,23 @@ impl EmitterWriter {
|
||||
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()
|
||||
.chars()
|
||||
.map(|ch| unicode_width::UnicodeWidthChar::width(ch).unwrap_or(1))
|
||||
.sum();
|
||||
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();
|
||||
|
||||
let offset: isize = offsets
|
||||
.iter()
|
||||
@ -2130,7 +2137,7 @@ impl EmitterWriter {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
enum DisplaySuggestion {
|
||||
Underline,
|
||||
Diff,
|
||||
|
@ -150,21 +150,20 @@ pub struct SubstitutionHighlight {
|
||||
|
||||
impl SubstitutionPart {
|
||||
pub fn is_addition(&self, sm: &SourceMap) -> bool {
|
||||
!self.snippet.is_empty()
|
||||
&& sm
|
||||
.span_to_snippet(self.span)
|
||||
.map_or(self.span.is_empty(), |snippet| snippet.trim().is_empty())
|
||||
!self.snippet.is_empty() && !self.replaces_meaningful_content(sm)
|
||||
}
|
||||
|
||||
pub fn is_deletion(&self) -> bool {
|
||||
self.snippet.trim().is_empty()
|
||||
pub fn is_deletion(&self, sm: &SourceMap) -> bool {
|
||||
self.snippet.trim().is_empty() && self.replaces_meaningful_content(sm)
|
||||
}
|
||||
|
||||
pub fn is_replacement(&self, sm: &SourceMap) -> bool {
|
||||
!self.snippet.is_empty()
|
||||
&& sm
|
||||
.span_to_snippet(self.span)
|
||||
.map_or(!self.span.is_empty(), |snippet| !snippet.trim().is_empty())
|
||||
!self.snippet.is_empty() && self.replaces_meaningful_content(sm)
|
||||
}
|
||||
|
||||
fn replaces_meaningful_content(&self, sm: &SourceMap) -> bool {
|
||||
sm.span_to_snippet(self.span)
|
||||
.map_or(!self.span.is_empty(), |snippet| !snippet.trim().is_empty())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,9 +13,8 @@ LL | #[deny(bare_trait_objects)]
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
LL + fn function(x: &dyn SomeTrait, y: Box<SomeTrait>) {
|
||||
|
|
||||
LL | fn function(x: &dyn SomeTrait, y: Box<SomeTrait>) {
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/dyn-2018-edition-lint.rs:4:35
|
||||
@ -27,9 +26,8 @@ LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
LL + fn function(x: &SomeTrait, y: Box<dyn SomeTrait>) {
|
||||
|
|
||||
LL | fn function(x: &SomeTrait, y: Box<dyn SomeTrait>) {
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/dyn-2018-edition-lint.rs:17:14
|
||||
@ -41,9 +39,8 @@ LL | let _x: &SomeTrait = todo!();
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - let _x: &SomeTrait = todo!();
|
||||
LL + let _x: &dyn SomeTrait = todo!();
|
||||
|
|
||||
LL | let _x: &dyn SomeTrait = todo!();
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/dyn-2018-edition-lint.rs:4:17
|
||||
@ -55,9 +52,8 @@ LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
LL + fn function(x: &dyn SomeTrait, y: Box<SomeTrait>) {
|
||||
|
|
||||
LL | fn function(x: &dyn SomeTrait, y: Box<SomeTrait>) {
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/dyn-2018-edition-lint.rs:4:17
|
||||
@ -69,9 +65,8 @@ LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
LL + fn function(x: &dyn SomeTrait, y: Box<SomeTrait>) {
|
||||
|
|
||||
LL | fn function(x: &dyn SomeTrait, y: Box<SomeTrait>) {
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/dyn-2018-edition-lint.rs:4:35
|
||||
@ -83,9 +78,8 @@ LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
LL + fn function(x: &SomeTrait, y: Box<dyn SomeTrait>) {
|
||||
|
|
||||
LL | fn function(x: &SomeTrait, y: Box<dyn SomeTrait>) {
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/dyn-2018-edition-lint.rs:4:35
|
||||
@ -97,9 +91,8 @@ LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
LL + fn function(x: &SomeTrait, y: Box<dyn SomeTrait>) {
|
||||
|
|
||||
LL | fn function(x: &SomeTrait, y: Box<dyn SomeTrait>) {
|
||||
| +++
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
|
||||
|
@ -6,9 +6,8 @@ LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
|
|
||||
help: add `dyn` keyword before this trait
|
||||
|
|
||||
LL - fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
LL + fn function(x: &dyn SomeTrait, y: Box<SomeTrait>) {
|
||||
|
|
||||
LL | fn function(x: &dyn SomeTrait, y: Box<SomeTrait>) {
|
||||
| +++
|
||||
|
||||
error[E0782]: trait objects must include the `dyn` keyword
|
||||
--> $DIR/dyn-2021-edition-error.rs:3:35
|
||||
@ -18,9 +17,8 @@ LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
|
|
||||
help: add `dyn` keyword before this trait
|
||||
|
|
||||
LL - fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
LL + fn function(x: &SomeTrait, y: Box<dyn SomeTrait>) {
|
||||
|
|
||||
LL | fn function(x: &SomeTrait, y: Box<dyn SomeTrait>) {
|
||||
| +++
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -13,9 +13,8 @@ LL | #![deny(bare_trait_objects)]
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - <fmt::Debug>::fmt(self, f)
|
||||
LL + <dyn fmt::Debug>::fmt(self, f)
|
||||
|
|
||||
LL | <dyn fmt::Debug>::fmt(self, f)
|
||||
| +++
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -6,9 +6,8 @@ LL | fn ice() -> impl AsRef<Fn(&())> {
|
||||
|
|
||||
help: add `dyn` keyword before this trait
|
||||
|
|
||||
LL - fn ice() -> impl AsRef<Fn(&())> {
|
||||
LL + fn ice() -> impl AsRef<dyn Fn(&())> {
|
||||
|
|
||||
LL | fn ice() -> impl AsRef<dyn Fn(&())> {
|
||||
| +++
|
||||
|
||||
error[E0277]: the trait bound `(): AsRef<(dyn for<'r> Fn(&'r ()) + 'static)>` is not satisfied
|
||||
--> $DIR/generic-with-implicit-hrtb-without-dyn.rs:6:13
|
||||
|
@ -25,9 +25,8 @@ LL | eq::<dyn, Foo>
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - eq::<dyn, Foo>
|
||||
LL + eq::<dyn, dyn Foo>
|
||||
|
|
||||
LL | eq::<dyn, dyn Foo>
|
||||
| +++
|
||||
|
||||
error[E0107]: missing generics for trait `Foo`
|
||||
--> $DIR/issue-86756.rs:5:15
|
||||
|
@ -9,9 +9,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/allowed-group-warn-by-default-lint.rs:10:25
|
||||
@ -23,9 +22,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/allowed-group-warn-by-default-lint.rs:10:25
|
||||
@ -37,9 +35,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: 3 warnings emitted
|
||||
|
||||
|
@ -9,9 +9,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/cap-lints-allow.rs:8:25
|
||||
@ -23,9 +22,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/cap-lints-allow.rs:8:25
|
||||
@ -37,9 +35,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: 3 warnings emitted
|
||||
|
||||
|
@ -9,9 +9,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/lint-group-allowed-cli-warn-by-default-lint.rs:8:25
|
||||
@ -23,9 +22,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/lint-group-allowed-cli-warn-by-default-lint.rs:8:25
|
||||
@ -37,9 +35,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: 3 warnings emitted
|
||||
|
||||
|
@ -9,9 +9,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/lint-group-allowed-lint-group.rs:10:25
|
||||
@ -23,9 +22,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/lint-group-allowed-lint-group.rs:10:25
|
||||
@ -37,9 +35,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: 3 warnings emitted
|
||||
|
||||
|
@ -9,9 +9,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/lint-group-allowed-warn-by-default-lint.rs:10:25
|
||||
@ -23,9 +22,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/lint-group-allowed-warn-by-default-lint.rs:10:25
|
||||
@ -37,9 +35,8 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub fn function(_x: Box<SomeTrait>) {}
|
||||
LL + pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
| +++
|
||||
|
||||
warning: 3 warnings emitted
|
||||
|
||||
|
@ -8,9 +8,8 @@ help: use `+= 1` instead
|
||||
|
|
||||
LL | { let tmp = i; i += 1; tmp };
|
||||
| +++++++++++ ~~~~~~~~~~~~~~~
|
||||
LL - i++;
|
||||
LL + i += 1;
|
||||
|
|
||||
LL | i += 1;
|
||||
| ~~~~
|
||||
|
||||
error: Rust has no postfix increment operator
|
||||
--> $DIR/increment-notfixed.rs:17:12
|
||||
@ -24,9 +23,8 @@ help: use `+= 1` instead
|
||||
|
|
||||
LL | while { let tmp = i; i += 1; tmp } < 5 {
|
||||
| +++++++++++ ~~~~~~~~~~~~~~~
|
||||
LL - while i++ < 5 {
|
||||
LL + while i += 1 < 5 {
|
||||
|
|
||||
LL | while i += 1 < 5 {
|
||||
| ~~~~
|
||||
|
||||
error: Rust has no postfix increment operator
|
||||
--> $DIR/increment-notfixed.rs:25:8
|
||||
@ -38,9 +36,8 @@ help: use `+= 1` instead
|
||||
|
|
||||
LL | { let tmp_ = tmp; tmp += 1; tmp_ };
|
||||
| ++++++++++++ ~~~~~~~~~~~~~~~~~~
|
||||
LL - tmp++;
|
||||
LL + tmp += 1;
|
||||
|
|
||||
LL | tmp += 1;
|
||||
| ~~~~
|
||||
|
||||
error: Rust has no postfix increment operator
|
||||
--> $DIR/increment-notfixed.rs:31:14
|
||||
@ -54,9 +51,8 @@ help: use `+= 1` instead
|
||||
|
|
||||
LL | while { let tmp_ = tmp; tmp += 1; tmp_ } < 5 {
|
||||
| ++++++++++++ ~~~~~~~~~~~~~~~~~~
|
||||
LL - while tmp++ < 5 {
|
||||
LL + while tmp += 1 < 5 {
|
||||
|
|
||||
LL | while tmp += 1 < 5 {
|
||||
| ~~~~
|
||||
|
||||
error: Rust has no postfix increment operator
|
||||
--> $DIR/increment-notfixed.rs:39:16
|
||||
@ -68,9 +64,8 @@ help: use `+= 1` instead
|
||||
|
|
||||
LL | { let tmp = foo.bar.qux; foo.bar.qux += 1; tmp };
|
||||
| +++++++++++ ~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LL - foo.bar.qux++;
|
||||
LL + foo.bar.qux += 1;
|
||||
|
|
||||
LL | foo.bar.qux += 1;
|
||||
| ~~~~
|
||||
|
||||
error: Rust has no postfix increment operator
|
||||
--> $DIR/increment-notfixed.rs:49:10
|
||||
@ -82,9 +77,8 @@ help: use `+= 1` instead
|
||||
|
|
||||
LL | { let tmp = s.tmp; s.tmp += 1; tmp };
|
||||
| +++++++++++ ~~~~~~~~~~~~~~~~~~~
|
||||
LL - s.tmp++;
|
||||
LL + s.tmp += 1;
|
||||
|
|
||||
LL | s.tmp += 1;
|
||||
| ~~~~
|
||||
|
||||
error: Rust has no prefix increment operator
|
||||
--> $DIR/increment-notfixed.rs:56:5
|
||||
|
@ -27,9 +27,8 @@ LL | let _: Box<(Obj) + (?Sized) + (for<'a> Trait<'a>)>;
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - let _: Box<(Obj) + (?Sized) + (for<'a> Trait<'a>)>;
|
||||
LL + let _: Box<dyn (Obj) + (?Sized) + (for<'a> Trait<'a>)>;
|
||||
|
|
||||
LL | let _: Box<dyn (Obj) + (?Sized) + (for<'a> Trait<'a>)>;
|
||||
| +++
|
||||
|
||||
error[E0225]: only auto traits can be used as additional traits in a trait object
|
||||
--> $DIR/trait-object-trait-parens.rs:8:35
|
||||
@ -52,9 +51,8 @@ LL | let _: Box<?Sized + (for<'a> Trait<'a>) + (Obj)>;
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - let _: Box<?Sized + (for<'a> Trait<'a>) + (Obj)>;
|
||||
LL + let _: Box<dyn ?Sized + (for<'a> Trait<'a>) + (Obj)>;
|
||||
|
|
||||
LL | let _: Box<dyn ?Sized + (for<'a> Trait<'a>) + (Obj)>;
|
||||
| +++
|
||||
|
||||
error[E0225]: only auto traits can be used as additional traits in a trait object
|
||||
--> $DIR/trait-object-trait-parens.rs:13:47
|
||||
@ -77,9 +75,8 @@ LL | let _: Box<for<'a> Trait<'a> + (Obj) + (?Sized)>;
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - let _: Box<for<'a> Trait<'a> + (Obj) + (?Sized)>;
|
||||
LL + let _: Box<dyn for<'a> Trait<'a> + (Obj) + (?Sized)>;
|
||||
|
|
||||
LL | let _: Box<dyn for<'a> Trait<'a> + (Obj) + (?Sized)>;
|
||||
| +++
|
||||
|
||||
error[E0225]: only auto traits can be used as additional traits in a trait object
|
||||
--> $DIR/trait-object-trait-parens.rs:18:36
|
||||
|
@ -13,9 +13,8 @@ LL | #![warn(rust_2021_prefixes_incompatible_syntax)]
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/reserving-syntax.html>
|
||||
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
||||
|
|
||||
LL - m2!(z"hey");
|
||||
LL + m2!(z "hey");
|
||||
|
|
||||
LL | m2!(z "hey");
|
||||
| +
|
||||
|
||||
warning: prefix `prefix` is unknown
|
||||
--> $DIR/reserved-prefixes-migration.rs:19:9
|
||||
@ -27,9 +26,8 @@ LL | m2!(prefix"hey");
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/reserving-syntax.html>
|
||||
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
||||
|
|
||||
LL - m2!(prefix"hey");
|
||||
LL + m2!(prefix "hey");
|
||||
|
|
||||
LL | m2!(prefix "hey");
|
||||
| +
|
||||
|
||||
warning: prefix `hey` is unknown
|
||||
--> $DIR/reserved-prefixes-migration.rs:22:9
|
||||
@ -41,9 +39,8 @@ LL | m3!(hey#123);
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/reserving-syntax.html>
|
||||
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
||||
|
|
||||
LL - m3!(hey#123);
|
||||
LL + m3!(hey #123);
|
||||
|
|
||||
LL | m3!(hey #123);
|
||||
| +
|
||||
|
||||
warning: prefix `hey` is unknown
|
||||
--> $DIR/reserved-prefixes-migration.rs:25:9
|
||||
@ -55,9 +52,8 @@ LL | m3!(hey#hey);
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/reserving-syntax.html>
|
||||
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
||||
|
|
||||
LL - m3!(hey#hey);
|
||||
LL + m3!(hey #hey);
|
||||
|
|
||||
LL | m3!(hey #hey);
|
||||
| +
|
||||
|
||||
warning: prefix `kind` is unknown
|
||||
--> $DIR/reserved-prefixes-migration.rs:35:14
|
||||
@ -69,9 +65,8 @@ LL | #name = #kind#value
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/reserving-syntax.html>
|
||||
help: insert whitespace here to avoid this being parsed as a prefix in Rust 2021
|
||||
|
|
||||
LL - #name = #kind#value
|
||||
LL + #name = #kind #value
|
||||
|
|
||||
LL | #name = #kind #value
|
||||
| +
|
||||
|
||||
warning: 5 warnings emitted
|
||||
|
||||
|
@ -7,9 +7,8 @@ LL | demo3!(foo#bar);
|
||||
= note: prefixed identifiers and literals are reserved since Rust 2021
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL - demo3!(foo#bar);
|
||||
LL + demo3!(foo #bar);
|
||||
|
|
||||
LL | demo3!(foo #bar);
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:17:12
|
||||
@ -20,9 +19,8 @@ LL | demo2!(foo"bar");
|
||||
= note: prefixed identifiers and literals are reserved since Rust 2021
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL - demo2!(foo"bar");
|
||||
LL + demo2!(foo "bar");
|
||||
|
|
||||
LL | demo2!(foo "bar");
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:18:12
|
||||
@ -33,9 +31,8 @@ LL | demo2!(foo'b');
|
||||
= note: prefixed identifiers and literals are reserved since Rust 2021
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL - demo2!(foo'b');
|
||||
LL + demo2!(foo 'b');
|
||||
|
|
||||
LL | demo2!(foo 'b');
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:20:12
|
||||
@ -46,9 +43,8 @@ LL | demo2!(foo'b);
|
||||
= note: prefixed identifiers and literals are reserved since Rust 2021
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL - demo2!(foo'b);
|
||||
LL + demo2!(foo 'b);
|
||||
|
|
||||
LL | demo2!(foo 'b);
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:21:12
|
||||
@ -59,9 +55,8 @@ LL | demo3!(foo# bar);
|
||||
= note: prefixed identifiers and literals are reserved since Rust 2021
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL - demo3!(foo# bar);
|
||||
LL + demo3!(foo # bar);
|
||||
|
|
||||
LL | demo3!(foo # bar);
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:22:12
|
||||
@ -72,9 +67,8 @@ LL | demo4!(foo#! bar);
|
||||
= note: prefixed identifiers and literals are reserved since Rust 2021
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL - demo4!(foo#! bar);
|
||||
LL + demo4!(foo #! bar);
|
||||
|
|
||||
LL | demo4!(foo #! bar);
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:23:12
|
||||
@ -85,9 +79,8 @@ LL | demo4!(foo## bar);
|
||||
= note: prefixed identifiers and literals are reserved since Rust 2021
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL - demo4!(foo## bar);
|
||||
LL + demo4!(foo ## bar);
|
||||
|
|
||||
LL | demo4!(foo ## bar);
|
||||
| +
|
||||
|
||||
error: prefix `foo` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:25:12
|
||||
@ -98,9 +91,8 @@ LL | demo4!(foo#bar#);
|
||||
= note: prefixed identifiers and literals are reserved since Rust 2021
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL - demo4!(foo#bar#);
|
||||
LL + demo4!(foo #bar#);
|
||||
|
|
||||
LL | demo4!(foo #bar#);
|
||||
| +
|
||||
|
||||
error: prefix `bar` is unknown
|
||||
--> $DIR/reserved-prefixes.rs:25:16
|
||||
@ -111,9 +103,8 @@ LL | demo4!(foo#bar#);
|
||||
= note: prefixed identifiers and literals are reserved since Rust 2021
|
||||
help: consider inserting whitespace here
|
||||
|
|
||||
LL - demo4!(foo#bar#);
|
||||
LL + demo4!(foo#bar #);
|
||||
|
|
||||
LL | demo4!(foo#bar #);
|
||||
| +
|
||||
|
||||
error: aborting due to 9 previous errors
|
||||
|
||||
|
@ -13,9 +13,8 @@ LL | #![deny(bare_trait_objects)]
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - bar: Box<Bar>,
|
||||
LL + bar: Box<dyn Bar>,
|
||||
|
|
||||
LL | bar: Box<dyn Bar>,
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/issue-61963.rs:18:1
|
||||
@ -27,9 +26,8 @@ LL | pub struct Foo {
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub struct Foo {
|
||||
LL + dyn pub struct Foo {
|
||||
|
|
||||
LL | dyn pub struct Foo {
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/issue-61963.rs:28:14
|
||||
@ -41,9 +39,8 @@ LL | bar: Box<Bar>,
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - bar: Box<Bar>,
|
||||
LL + bar: Box<dyn Bar>,
|
||||
|
|
||||
LL | bar: Box<dyn Bar>,
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/issue-61963.rs:28:14
|
||||
@ -55,9 +52,8 @@ LL | bar: Box<Bar>,
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - bar: Box<Bar>,
|
||||
LL + bar: Box<dyn Bar>,
|
||||
|
|
||||
LL | bar: Box<dyn Bar>,
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/issue-61963.rs:18:1
|
||||
@ -69,9 +65,8 @@ LL | pub struct Foo {
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub struct Foo {
|
||||
LL + dyn pub struct Foo {
|
||||
|
|
||||
LL | dyn pub struct Foo {
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/issue-61963.rs:18:1
|
||||
@ -83,9 +78,8 @@ LL | pub struct Foo {
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub struct Foo {
|
||||
LL + dyn pub struct Foo {
|
||||
|
|
||||
LL | dyn pub struct Foo {
|
||||
| +++
|
||||
|
||||
error: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/issue-61963.rs:18:1
|
||||
@ -97,9 +91,8 @@ LL | pub struct Foo {
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - pub struct Foo {
|
||||
LL + dyn pub struct Foo {
|
||||
|
|
||||
LL | dyn pub struct Foo {
|
||||
| +++
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
|
||||
|
@ -6,9 +6,8 @@ LL | impl LocalTraitTwo for LocalTraitOne {}
|
||||
|
|
||||
help: add `dyn` keyword before this trait
|
||||
|
|
||||
LL - impl LocalTraitTwo for LocalTraitOne {}
|
||||
LL + impl LocalTraitTwo for dyn LocalTraitOne {}
|
||||
|
|
||||
LL | impl LocalTraitTwo for dyn LocalTraitOne {}
|
||||
| +++
|
||||
help: alternatively use a blanket implementation to implement `LocalTraitTwo` for all types that also implement `LocalTraitOne`
|
||||
|
|
||||
LL | impl<T: LocalTraitOne> LocalTraitTwo for T {}
|
||||
@ -22,9 +21,8 @@ LL | impl fmt::Display for LocalTraitOne {
|
||||
|
|
||||
help: add `dyn` keyword before this trait
|
||||
|
|
||||
LL - impl fmt::Display for LocalTraitOne {
|
||||
LL + impl fmt::Display for dyn LocalTraitOne {
|
||||
|
|
||||
LL | impl fmt::Display for dyn LocalTraitOne {
|
||||
| +++
|
||||
|
||||
error[E0782]: trait objects must include the `dyn` keyword
|
||||
--> $DIR/suggest-blanket-impl-local-trait.rs:26:23
|
||||
@ -34,9 +32,8 @@ LL | impl fmt::Display for LocalTraitTwo + Send {
|
||||
|
|
||||
help: add `dyn` keyword before this trait
|
||||
|
|
||||
LL - impl fmt::Display for LocalTraitTwo + Send {
|
||||
LL + impl fmt::Display for dyn LocalTraitTwo + Send {
|
||||
|
|
||||
LL | impl fmt::Display for dyn LocalTraitTwo + Send {
|
||||
| +++
|
||||
|
||||
error[E0782]: trait objects must include the `dyn` keyword
|
||||
--> $DIR/suggest-blanket-impl-local-trait.rs:34:24
|
||||
@ -46,9 +43,8 @@ LL | impl LocalTraitOne for fmt::Display {}
|
||||
|
|
||||
help: add `dyn` keyword before this trait
|
||||
|
|
||||
LL - impl LocalTraitOne for fmt::Display {}
|
||||
LL + impl LocalTraitOne for dyn fmt::Display {}
|
||||
|
|
||||
LL | impl LocalTraitOne for dyn fmt::Display {}
|
||||
| +++
|
||||
help: alternatively use a blanket implementation to implement `LocalTraitOne` for all types that also implement `fmt::Display`
|
||||
|
|
||||
LL | impl<T: fmt::Display> LocalTraitOne for T {}
|
||||
@ -62,9 +58,8 @@ LL | impl LocalTraitOne for fmt::Display + Send {}
|
||||
|
|
||||
help: add `dyn` keyword before this trait
|
||||
|
|
||||
LL - impl LocalTraitOne for fmt::Display + Send {}
|
||||
LL + impl LocalTraitOne for dyn fmt::Display + Send {}
|
||||
|
|
||||
LL | impl LocalTraitOne for dyn fmt::Display + Send {}
|
||||
| +++
|
||||
help: alternatively use a blanket implementation to implement `LocalTraitOne` for all types that also implement `fmt::Display + Send`
|
||||
|
|
||||
LL | impl<T: fmt::Display + Send> LocalTraitOne for T {}
|
||||
@ -78,9 +73,8 @@ LL | impl<E> GenericTrait<E> for LocalTraitOne {}
|
||||
|
|
||||
help: add `dyn` keyword before this trait
|
||||
|
|
||||
LL - impl<E> GenericTrait<E> for LocalTraitOne {}
|
||||
LL + impl<E> GenericTrait<E> for dyn LocalTraitOne {}
|
||||
|
|
||||
LL | impl<E> GenericTrait<E> for dyn LocalTraitOne {}
|
||||
| +++
|
||||
help: alternatively use a blanket implementation to implement `GenericTrait<E>` for all types that also implement `LocalTraitOne`
|
||||
|
|
||||
LL | impl<E, T: LocalTraitOne> GenericTrait<E> for T {}
|
||||
@ -94,9 +88,8 @@ LL | impl<T, E> GenericTraitTwo<E> for GenericTrait<T> {}
|
||||
|
|
||||
help: add `dyn` keyword before this trait
|
||||
|
|
||||
LL - impl<T, E> GenericTraitTwo<E> for GenericTrait<T> {}
|
||||
LL + impl<T, E> GenericTraitTwo<E> for dyn GenericTrait<T> {}
|
||||
|
|
||||
LL | impl<T, E> GenericTraitTwo<E> for dyn GenericTrait<T> {}
|
||||
| +++
|
||||
help: alternatively use a blanket implementation to implement `GenericTraitTwo<E>` for all types that also implement `GenericTrait<T>`
|
||||
|
|
||||
LL | impl<T, E, U: GenericTrait<T>> GenericTraitTwo<E> for U {}
|
||||
|
@ -39,9 +39,8 @@ LL | impl<'a, T> Struct<T> for Trait<'a, T> {}
|
||||
|
|
||||
help: add `dyn` keyword before this trait
|
||||
|
|
||||
LL - impl<'a, T> Struct<T> for Trait<'a, T> {}
|
||||
LL + impl<'a, T> Struct<T> for dyn Trait<'a, T> {}
|
||||
|
|
||||
LL | impl<'a, T> Struct<T> for dyn Trait<'a, T> {}
|
||||
| +++
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
@ -42,9 +42,8 @@ LL | impl<'a, T> Struct<T> for Trait<'a, T> {}
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - impl<'a, T> Struct<T> for Trait<'a, T> {}
|
||||
LL + impl<'a, T> Struct<T> for dyn Trait<'a, T> {}
|
||||
|
|
||||
LL | impl<'a, T> Struct<T> for dyn Trait<'a, T> {}
|
||||
| +++
|
||||
|
||||
error: aborting due to 3 previous errors; 1 warning emitted
|
||||
|
||||
|
@ -9,9 +9,8 @@ LL | fn foo(_x: Foo + Send) {
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
help: use `dyn`
|
||||
|
|
||||
LL - fn foo(_x: Foo + Send) {
|
||||
LL + fn foo(_x: dyn Foo + Send) {
|
||||
|
|
||||
LL | fn foo(_x: dyn Foo + Send) {
|
||||
| +++
|
||||
|
||||
error[E0277]: the size for values of type `(dyn Foo + Send + 'static)` cannot be known at compilation time
|
||||
--> $DIR/not-on-bare-trait.rs:7:8
|
||||
|
Loading…
Reference in New Issue
Block a user