1
Fork 0

Use underline suggestions for purely 'additive' replacements

This commit is contained in:
Michael Goulet 2025-02-13 02:54:07 +00:00 committed by Jubilee Young
parent 6dfeab5c9e
commit b480a9214a
110 changed files with 369 additions and 535 deletions

View file

@ -1982,7 +1982,8 @@ impl HumanEmitter {
{ {
debug!(?complete, ?parts, ?highlights); debug!(?complete, ?parts, ?highlights);
let has_deletion = parts.iter().any(|p| p.is_deletion(sm) || p.is_replacement(sm)); let has_deletion =
parts.iter().any(|p| p.is_deletion(sm) || p.is_destructive_replacement(sm));
let is_multiline = complete.lines().count() > 1; let is_multiline = complete.lines().count() > 1;
if i == 0 { if i == 0 {

View file

@ -230,6 +230,17 @@ impl SubstitutionPart {
!self.snippet.is_empty() && self.replaces_meaningful_content(sm) !self.snippet.is_empty() && self.replaces_meaningful_content(sm)
} }
/// Whether this is a replacement that overwrites source with a snippet
/// in a way that isn't a superset of the original string. For example,
/// replacing "abc" with "abcde" is not destructive, but replacing it
/// it with "abx" is, since the "c" character is lost.
pub fn is_destructive_replacement(&self, sm: &SourceMap) -> bool {
self.is_replacement(sm)
&& !sm
.span_to_snippet(self.span)
.is_ok_and(|snippet| self.snippet.trim_start().starts_with(snippet.trim_start()))
}
fn replaces_meaningful_content(&self, sm: &SourceMap) -> bool { fn replaces_meaningful_content(&self, sm: &SourceMap) -> bool {
sm.span_to_snippet(self.span) sm.span_to_snippet(self.span)
.map_or(!self.span.is_empty(), |snippet| !snippet.trim().is_empty()) .map_or(!self.span.is_empty(), |snippet| !snippet.trim().is_empty())

View file

@ -134,9 +134,8 @@ LL | type Baz = T;
| --- required by a bound in this associated type | --- required by a bound in this associated type
help: consider further restricting type parameter `T` with trait `Clone` help: consider further restricting type parameter `T` with trait `Clone`
| |
LL - Self::Baz: Clone, LL | Self::Baz: Clone, T: std::clone::Clone
LL + Self::Baz: Clone, T: std::clone::Clone | ~~~~~~~~~~~~~~~~~~~~~~
|
error: aborting due to 8 previous errors error: aborting due to 8 previous errors

View file

@ -134,9 +134,8 @@ LL | type Baz = T;
| --- required by a bound in this associated type | --- required by a bound in this associated type
help: consider further restricting type parameter `T` with trait `Clone` help: consider further restricting type parameter `T` with trait `Clone`
| |
LL - Self::Baz: Clone, LL | Self::Baz: Clone, T: std::clone::Clone
LL + Self::Baz: Clone, T: std::clone::Clone | ~~~~~~~~~~~~~~~~~~~~~~
|
error: aborting due to 8 previous errors error: aborting due to 8 previous errors

View file

@ -13,9 +13,8 @@ LL | impl<T: NotNull> IntoNullable for T {
| unsatisfied trait bound introduced here | unsatisfied trait bound introduced here
help: consider extending the `where` clause, but there might be an alternative better way to express this requirement help: consider extending the `where` clause, but there might be an alternative better way to express this requirement
| |
LL - Expr: Expression<SqlType=<Col::SqlType as IntoNullable>::Nullable>, LL | Expr: Expression<SqlType=<Col::SqlType as IntoNullable>::Nullable>, <Col as Expression>::SqlType: NotNull
LL + Expr: Expression<SqlType=<Col::SqlType as IntoNullable>::Nullable>, <Col as Expression>::SqlType: NotNull | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error[E0277]: the trait bound `<Col as Expression>::SqlType: NotNull` is not satisfied error[E0277]: the trait bound `<Col as Expression>::SqlType: NotNull` is not satisfied
--> $DIR/issue-38821.rs:40:1 --> $DIR/issue-38821.rs:40:1
@ -38,9 +37,8 @@ LL | impl<T: NotNull> IntoNullable for T {
| unsatisfied trait bound introduced here | unsatisfied trait bound introduced here
help: consider extending the `where` clause, but there might be an alternative better way to express this requirement help: consider extending the `where` clause, but there might be an alternative better way to express this requirement
| |
LL - Expr: Expression<SqlType=<Col::SqlType as IntoNullable>::Nullable>, LL | Expr: Expression<SqlType=<Col::SqlType as IntoNullable>::Nullable>, <Col as Expression>::SqlType: NotNull
LL + Expr: Expression<SqlType=<Col::SqlType as IntoNullable>::Nullable>, <Col as Expression>::SqlType: NotNull | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error[E0277]: the trait bound `<Col as Expression>::SqlType: NotNull` is not satisfied error[E0277]: the trait bound `<Col as Expression>::SqlType: NotNull` is not satisfied
--> $DIR/issue-38821.rs:23:10 --> $DIR/issue-38821.rs:23:10

View file

@ -12,9 +12,8 @@ LL | type Size: Add<Output = Self::Size>;
| ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Encoder::Size` | ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Encoder::Size`
help: consider further restricting the associated type help: consider further restricting the associated type
| |
LL - T: SubEncoder, LL | T: SubEncoder, <T as SubEncoder>::ActualSize: Add
LL + T: SubEncoder, <T as SubEncoder>::ActualSize: Add | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -12,9 +12,8 @@ LL | type Size: Add<Output = Self::Size>;
| ^^^^^^^^^^^^^^^^^^^ required by this bound in `Encoder::Size` | ^^^^^^^^^^^^^^^^^^^ required by this bound in `Encoder::Size`
help: consider further restricting the associated type help: consider further restricting the associated type
| |
LL - T: SubEncoder, LL | T: SubEncoder, <T as SubEncoder>::ActualSize: Add
LL + T: SubEncoder, <T as SubEncoder>::ActualSize: Add | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -35,9 +35,8 @@ LL | x.inser();
| |
help: there is a method `insert` with a similar name help: there is a method `insert` with a similar name
| |
LL - x.inser(); LL | x.insert();
LL + x.insert(); | ~~~~~~
|
error[E0599]: no method named `foo` found for struct `rustc_confusables_across_crate::BTreeSet` in the current scope error[E0599]: no method named `foo` found for struct `rustc_confusables_across_crate::BTreeSet` in the current scope
--> $DIR/rustc_confusables.rs:15:7 --> $DIR/rustc_confusables.rs:15:7

View file

@ -38,9 +38,8 @@ LL | let mut x = VecDeque::new();
| ----- earlier `x` shadowed here with type `VecDeque` | ----- earlier `x` shadowed here with type `VecDeque`
help: you might have meant to use `push_back` help: you might have meant to use `push_back`
| |
LL - x.push(1); LL | x.push_back(1);
LL + x.push_back(1); | ~~~~~~~~~
|
error[E0599]: no method named `length` found for struct `Vec<{integer}>` in the current scope error[E0599]: no method named `length` found for struct `Vec<{integer}>` in the current scope
--> $DIR/rustc_confusables_std_cases.rs:15:7 --> $DIR/rustc_confusables_std_cases.rs:15:7
@ -98,9 +97,8 @@ note: method defined here
--> $SRC_DIR/alloc/src/string.rs:LL:COL --> $SRC_DIR/alloc/src/string.rs:LL:COL
help: you might have meant to use `push_str` help: you might have meant to use `push_str`
| |
LL - String::new().push(""); LL | String::new().push_str("");
LL + String::new().push_str(""); | ~~~~~~~~
|
error[E0599]: no method named `append` found for struct `String` in the current scope error[E0599]: no method named `append` found for struct `String` in the current scope
--> $DIR/rustc_confusables_std_cases.rs:24:19 --> $DIR/rustc_confusables_std_cases.rs:24:19

View file

@ -8,9 +8,8 @@ LL | self.layers.iter().fold(0, |result, mut layer| result + layer.proce
| |
help: you may want to use `iter_mut` here help: you may want to use `iter_mut` here
| |
LL - self.layers.iter().fold(0, |result, mut layer| result + layer.process()) LL | self.layers.iter_mut().fold(0, |result, mut layer| result + layer.process())
LL + self.layers.iter_mut().fold(0, |result, mut layer| result + layer.process()) | ~~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -8,9 +8,8 @@ LL | vec.iter().flat_map(|container| container.things()).cloned().co
| |
help: you may want to use `iter_mut` here help: you may want to use `iter_mut` here
| |
LL - vec.iter().flat_map(|container| container.things()).cloned().collect::<Vec<PathBuf>>(); LL | vec.iter_mut().flat_map(|container| container.things()).cloned().collect::<Vec<PathBuf>>();
LL + vec.iter_mut().flat_map(|container| container.things()).cloned().collect::<Vec<PathBuf>>(); | ~~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -8,9 +8,8 @@ LL | v.iter().for_each(|a| a.double());
| |
help: you may want to use `iter_mut` here help: you may want to use `iter_mut` here
| |
LL - v.iter().for_each(|a| a.double()); LL | v.iter_mut().for_each(|a| a.double());
LL + v.iter_mut().for_each(|a| a.double()); | ~~~~~~~~
|
error[E0596]: cannot borrow `*a` as mutable, as it is behind a `&` reference error[E0596]: cannot borrow `*a` as mutable, as it is behind a `&` reference
--> $DIR/issue-62387-suggest-iter-mut.rs:25:39 --> $DIR/issue-62387-suggest-iter-mut.rs:25:39
@ -22,9 +21,8 @@ LL | v.iter().rev().rev().for_each(|a| a.double());
| |
help: you may want to use `iter_mut` here help: you may want to use `iter_mut` here
| |
LL - v.iter().rev().rev().for_each(|a| a.double()); LL | v.iter_mut().rev().rev().for_each(|a| a.double());
LL + v.iter_mut().rev().rev().for_each(|a| a.double()); | ~~~~~~~~
|
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -63,9 +63,8 @@ LL | self , ... , self , self , ... ) where F : FnOnce ( & 'a & 'b usize
| |
help: a trait with a similar name exists help: a trait with a similar name exists
| |
LL - self , ... , self , self , ... ) where F : FnOnce ( & 'a & 'b usize ) { LL | self , ... , self , self , ... ) where Fn : FnOnce ( & 'a & 'b usize ) {
LL + self , ... , self , self , ... ) where Fn : FnOnce ( & 'a & 'b usize ) { | ~~
|
help: you might be missing a type parameter help: you might be missing a type parameter
| |
LL | fn ordering4 < 'a , 'b, F > ( a : , self , self , self , LL | fn ordering4 < 'a , 'b, F > ( a : , self , self , self ,

View file

@ -16,9 +16,8 @@ LL | cbor_map! { #[cfg(test)] 4};
= note: this error originates in the macro `cbor_map` (in Nightly builds, run with -Z macro-backtrace for more info) = note: this error originates in the macro `cbor_map` (in Nightly builds, run with -Z macro-backtrace for more info)
help: you must specify a concrete type for this numeric value, like `i32` help: you must specify a concrete type for this numeric value, like `i32`
| |
LL - cbor_map! { #[cfg(test)] 4}; LL | cbor_map! { #[cfg(test)] 4_i32};
LL + cbor_map! { #[cfg(test)] 4_i32}; | ~~~~~
|
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -17,9 +17,8 @@ LL | #[cfg(featur = "foo")]
= note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
help: there is a config with a similar name and value help: there is a config with a similar name and value
| |
LL - #[cfg(featur = "foo")] LL | #[cfg(feature = "foo")]
LL + #[cfg(feature = "foo")] | ~~~~~~~
|
warning: unexpected `cfg` condition name: `featur` warning: unexpected `cfg` condition name: `featur`
--> $DIR/diagnotics.rs:17:7 --> $DIR/diagnotics.rs:17:7

View file

@ -19,9 +19,8 @@ LL | #[cfg(featur = "foo")]
= note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg.html> for more information about checking conditional configuration = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg.html> for more information about checking conditional configuration
help: there is a config with a similar name and value help: there is a config with a similar name and value
| |
LL - #[cfg(featur = "foo")] LL | #[cfg(feature = "foo")]
LL + #[cfg(feature = "foo")] | ~~~~~~~
|
warning: unexpected `cfg` condition name: `featur` warning: unexpected `cfg` condition name: `featur`
--> $DIR/diagnotics.rs:17:7 --> $DIR/diagnotics.rs:17:7

View file

@ -108,9 +108,8 @@ LL | let PAT = v1;
= note: the matched value is of type `u32` = note: the matched value is of type `u32`
help: introduce a variable instead help: introduce a variable instead
| |
LL - let PAT = v1; LL | let PAT_var = v1;
LL + let PAT_var = v1; | ~~~~~~~
|
error: aborting due to 7 previous errors error: aborting due to 7 previous errors

View file

@ -15,9 +15,8 @@ LL | _func: F,
| |
help: a trait with a similar name exists help: a trait with a similar name exists
| |
LL - _func: F, LL | _func: Fn,
LL + _func: Fn, | ~~
|
help: you might be missing a type parameter help: you might be missing a type parameter
| |
LL | struct Map2<Segment2, F> { LL | struct Map2<Segment2, F> {

View file

@ -8,9 +8,8 @@ LL | fn poll(self, _: &mut Context<'_>) -> Poll<()> {
found signature `fn(MyFuture, &mut Context<'_>) -> Poll<_>` found signature `fn(MyFuture, &mut Context<'_>) -> Poll<_>`
help: change the self-receiver type to match the trait help: change the self-receiver type to match the trait
| |
LL - fn poll(self, _: &mut Context<'_>) -> Poll<()> { LL | fn poll(self: Pin<&mut MyFuture>, _: &mut Context<'_>) -> Poll<()> {
LL + fn poll(self: Pin<&mut MyFuture>, _: &mut Context<'_>) -> Poll<()> { | ~~~~~~~~~~~~~~~~~~~~~~~~
|
error[E0053]: method `foo` has an incompatible type for trait error[E0053]: method `foo` has an incompatible type for trait
--> $DIR/bad-self-type.rs:22:18 --> $DIR/bad-self-type.rs:22:18

View file

@ -14,9 +14,8 @@ LL | [(); N + 1]:,
| ^^^^^ required by this bound in `bar` | ^^^^^ required by this bound in `bar`
help: try adding a `where` bound help: try adding a `where` bound
| |
LL - [(); M + 1]:, LL | [(); M + 1]:, [(); N + 1]:
LL + [(); M + 1]:, [(); N + 1]: | ~~~~~~~~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -14,9 +14,8 @@ LL | [(); N + 1]:,
| ^^^^^ required by this bound in `bar` | ^^^^^ required by this bound in `bar`
help: try adding a `where` bound help: try adding a `where` bound
| |
LL - [(); both(N + 1, M + 1)]:, LL | [(); both(N + 1, M + 1)]:, [(); N + 1]:
LL + [(); both(N + 1, M + 1)]:, [(); N + 1]: | ~~~~~~~~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -16,9 +16,8 @@ LL | fn assert_impl<T: Trait>() {}
| ^^^^^ required by this bound in `assert_impl` | ^^^^^ required by this bound in `assert_impl`
help: try adding a `where` bound help: try adding a `where` bound
| |
LL - EvaluatableU128<{N as u128}>:, { LL | EvaluatableU128<{N as u128}>:, [(); { O as u128 } as usize]: {
LL + EvaluatableU128<{N as u128}>:, [(); { O as u128 } as usize]: { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/abstract-const-as-cast-3.rs:17:5 --> $DIR/abstract-const-as-cast-3.rs:17:5
@ -52,9 +51,8 @@ LL | fn assert_impl<T: Trait>() {}
| ^^^^^ required by this bound in `assert_impl` | ^^^^^ required by this bound in `assert_impl`
help: try adding a `where` bound help: try adding a `where` bound
| |
LL - EvaluatableU128<{N as u128}>:, { LL | EvaluatableU128<{N as u128}>:, [(); { O as u128 } as usize]: {
LL + EvaluatableU128<{N as u128}>:, [(); { O as u128 } as usize]: { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/abstract-const-as-cast-3.rs:20:5 --> $DIR/abstract-const-as-cast-3.rs:20:5
@ -116,9 +114,8 @@ LL | fn assert_impl<T: Trait>() {}
| ^^^^^ required by this bound in `assert_impl` | ^^^^^ required by this bound in `assert_impl`
help: try adding a `where` bound help: try adding a `where` bound
| |
LL - EvaluatableU128<{N as _}>:, { LL | EvaluatableU128<{N as _}>:, [(); { O as u128 } as usize]: {
LL + EvaluatableU128<{N as _}>:, [(); { O as u128 } as usize]: { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/abstract-const-as-cast-3.rs:35:5 --> $DIR/abstract-const-as-cast-3.rs:35:5
@ -152,9 +149,8 @@ LL | fn assert_impl<T: Trait>() {}
| ^^^^^ required by this bound in `assert_impl` | ^^^^^ required by this bound in `assert_impl`
help: try adding a `where` bound help: try adding a `where` bound
| |
LL - EvaluatableU128<{N as _}>:, { LL | EvaluatableU128<{N as _}>:, [(); { O as u128 } as usize]: {
LL + EvaluatableU128<{N as _}>:, [(); { O as u128 } as usize]: { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/abstract-const-as-cast-3.rs:38:5 --> $DIR/abstract-const-as-cast-3.rs:38:5

View file

@ -6,9 +6,8 @@ LL | bar::<{ T::ASSOC }>();
| |
help: try adding a `where` bound help: try adding a `where` bound
| |
LL - fn foo<T: Trait, U: Trait>() where [(); U::ASSOC]:, { LL | fn foo<T: Trait, U: Trait>() where [(); U::ASSOC]:, [(); { T::ASSOC }]: {
LL + fn foo<T: Trait, U: Trait>() where [(); U::ASSOC]:, [(); { T::ASSOC }]: { | ~~~~~~~~~~~~~~~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -26,9 +26,8 @@ LL | foo::<_, L>([(); L + 1 + L]);
| |
help: try adding a `where` bound help: try adding a `where` bound
| |
LL - [(); (L - 1) + 1 + L]:, LL | [(); (L - 1) + 1 + L]:, [(); L + 1 + L]:
LL + [(); (L - 1) + 1 + L]:, [(); L + 1 + L]: | ~~~~~~~~~~~~~~~~~~
|
error: unconstrained generic constant error: unconstrained generic constant
--> $DIR/issue_114151.rs:17:17 --> $DIR/issue_114151.rs:17:17

View file

@ -15,9 +15,8 @@ LL | foo::<_, L>([(); L + 1 + L]);
| |
help: try adding a `where` bound help: try adding a `where` bound
| |
LL - [(); (L - 1) + 1 + L]:, LL | [(); (L - 1) + 1 + L]:, [(); L + 1 + L]:
LL + [(); (L - 1) + 1 + L]:, [(); L + 1 + L]: | ~~~~~~~~~~~~~~~~~~
|
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -9,9 +9,8 @@ LL | let f: F = async { 1 };
| |
help: a trait with a similar name exists help: a trait with a similar name exists
| |
LL - let f: F = async { 1 }; LL | let f: Fn = async { 1 };
LL + let f: Fn = async { 1 }; | ~~
|
help: you might be missing a type parameter help: you might be missing a type parameter
| |
LL | fn f<T, F>( LL | fn f<T, F>(

View file

@ -12,9 +12,8 @@ LL | let a = 4;
= note: the matched value is of type `u8` = note: the matched value is of type `u8`
help: introduce a variable instead help: introduce a variable instead
| |
LL - let a = 4; LL | let a_var = 4;
LL + let a_var = 4; | ~~~~~
|
error[E0005]: refutable pattern in local binding error[E0005]: refutable pattern in local binding
--> $DIR/const-pattern-irrefutable.rs:28:9 --> $DIR/const-pattern-irrefutable.rs:28:9
@ -48,9 +47,8 @@ LL | let d = (4, 4);
= note: the matched value is of type `(u8, u8)` = note: the matched value is of type `(u8, u8)`
help: introduce a variable instead help: introduce a variable instead
| |
LL - let d = (4, 4); LL | let d_var = (4, 4);
LL + let d_var = (4, 4); | ~~~~~
|
error[E0005]: refutable pattern in local binding error[E0005]: refutable pattern in local binding
--> $DIR/const-pattern-irrefutable.rs:36:9 --> $DIR/const-pattern-irrefutable.rs:36:9
@ -71,9 +69,8 @@ LL | struct S {
= note: the matched value is of type `S` = note: the matched value is of type `S`
help: introduce a variable instead help: introduce a variable instead
| |
LL - let e = S { LL | let e_var = S {
LL + let e_var = S { | ~~~~~
|
error: aborting due to 4 previous errors error: aborting due to 4 previous errors

View file

@ -10,9 +10,8 @@ LL | const CRATE: Crate = Crate { fiel: () };
= note: this error originates in the macro `environment` (in Nightly builds, run with -Z macro-backtrace for more info) = note: this error originates in the macro `environment` (in Nightly builds, run with -Z macro-backtrace for more info)
help: a field with a similar name exists help: a field with a similar name exists
| |
LL - const CRATE: Crate = Crate { fiel: () }; LL | const CRATE: Crate = Crate { field: () };
LL + const CRATE: Crate = Crate { field: () }; | ~~~~~
|
error[E0609]: no field `field` on type `Compound` error[E0609]: no field `field` on type `Compound`
--> $DIR/dont-suggest-hygienic-fields.rs:24:16 --> $DIR/dont-suggest-hygienic-fields.rs:24:16

View file

@ -11,9 +11,8 @@ LL | struct DropMe<T: Copy>(T);
| ^^^^ required by this bound in `DropMe` | ^^^^ required by this bound in `DropMe`
help: consider further restricting type parameter `T` with trait `Copy` help: consider further restricting type parameter `T` with trait `Copy`
| |
LL - [T; 1]: Copy, // But `[T; 1]: Copy` does not imply `T: Copy` LL | [T; 1]: Copy, T: std::marker::Copy // But `[T; 1]: Copy` does not imply `T: Copy`
LL + [T; 1]: Copy, T: std::marker::Copy // But `[T; 1]: Copy` does not imply `T: Copy` | ~~~~~~~~~~~~~~~~~~~~~~
|
error[E0277]: the trait bound `T: Copy` is not satisfied error[E0277]: the trait bound `T: Copy` is not satisfied
--> $DIR/explicit-drop-bounds.rs:32:18 --> $DIR/explicit-drop-bounds.rs:32:18
@ -28,9 +27,8 @@ LL | struct DropMe<T: Copy>(T);
| ^^^^ required by this bound in `DropMe` | ^^^^ required by this bound in `DropMe`
help: consider further restricting type parameter `T` with trait `Copy` help: consider further restricting type parameter `T` with trait `Copy`
| |
LL - [T; 1]: Copy, // But `[T; 1]: Copy` does not imply `T: Copy` LL | [T; 1]: Copy, T: std::marker::Copy // But `[T; 1]: Copy` does not imply `T: Copy`
LL + [T; 1]: Copy, T: std::marker::Copy // But `[T; 1]: Copy` does not imply `T: Copy` | ~~~~~~~~~~~~~~~~~~~~~~
|
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -67,9 +67,8 @@ LL | fn wants_write(_: impl Write) {}
| ^^^^^ required by this bound in `wants_write` | ^^^^^ required by this bound in `wants_write`
help: consider changing this borrow's mutability help: consider changing this borrow's mutability
| |
LL - wants_write(&[0u8][..]); LL | wants_write(&mut [0u8][..]);
LL + wants_write(&mut [0u8][..]); | ~~~~
|
error: aborting due to 4 previous errors error: aborting due to 4 previous errors

View file

@ -14,9 +14,8 @@ LL | pub struct XEmpty2;
| |
help: use struct literal syntax instead help: use struct literal syntax instead
| |
LL - let e1 = Empty1; LL | let e1 = Empty1 {};
LL + let e1 = Empty1 {}; | ~~~~~~~~~
|
help: a unit struct with a similar name exists help: a unit struct with a similar name exists
| |
LL - let e1 = Empty1; LL - let e1 = Empty1;
@ -38,9 +37,8 @@ LL | pub struct XEmpty2;
| |
help: use struct literal syntax instead help: use struct literal syntax instead
| |
LL - let xe1 = XEmpty1; LL | let xe1 = XEmpty1 {};
LL + let xe1 = XEmpty1 {}; | ~~~~~~~~~~
|
help: a unit struct with a similar name exists help: a unit struct with a similar name exists
| |
LL - let xe1 = XEmpty1; LL - let xe1 = XEmpty1;

View file

@ -46,9 +46,8 @@ LL | XEmpty5(),
| |
help: use the tuple variant pattern syntax instead help: use the tuple variant pattern syntax instead
| |
LL - XE::XEmpty5 => (), LL | XE::XEmpty5() => (),
LL + XE::XEmpty5() => (), | ~~~~~~~~~~~~~
|
help: a unit variant with a similar name exists help: a unit variant with a similar name exists
| |
LL - XE::XEmpty5 => (), LL - XE::XEmpty5 => (),

View file

@ -11,9 +11,8 @@ LL + extern fn none_fn(x: bool) -> i32 { <body> }
| |
help: if you meant to declare an externally defined function, use an `extern` block help: if you meant to declare an externally defined function, use an `extern` block
| |
LL - extern fn none_fn(x: bool) -> i32; LL | extern { fn none_fn(x: bool) -> i32; }
LL + extern { fn none_fn(x: bool) -> i32; } | ~~~~~~~~ +
|
error: free function without a body error: free function without a body
--> $DIR/not-in-block.rs:6:1 --> $DIR/not-in-block.rs:6:1
@ -28,9 +27,8 @@ LL + extern "C" fn c_fn(x: bool) -> i32 { <body> }
| |
help: if you meant to declare an externally defined function, use an `extern` block help: if you meant to declare an externally defined function, use an `extern` block
| |
LL - extern "C" fn c_fn(x: bool) -> i32; LL | extern "C" { fn c_fn(x: bool) -> i32; }
LL + extern "C" { fn c_fn(x: bool) -> i32; } | ~~~~~~~~~~~~ +
|
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -51,9 +51,8 @@ LL | format_args!("{}", 0xffff_ffff); // treat unsuffixed literals as i32
= help: consider using the type `u32` instead = help: consider using the type `u32` instead
help: to use as a negative number (decimal `-1`), consider using the type `u32` for the literal and cast it to `i32` help: to use as a negative number (decimal `-1`), consider using the type `u32` for the literal and cast it to `i32`
| |
LL - format_args!("{}", 0xffff_ffff); // treat unsuffixed literals as i32 LL | format_args!("{}", 0xffff_ffffu32 as i32); // treat unsuffixed literals as i32
LL + format_args!("{}", 0xffff_ffffu32 as i32); // treat unsuffixed literals as i32 | ~~~~~~~~~~~~~~~~~~~~~
|
error: aborting due to 5 previous errors error: aborting due to 5 previous errors

View file

@ -17,9 +17,8 @@ LL + use no_method_suggested_traits::qux::PrivPub;
| |
help: there is a method `method2` with a similar name help: there is a method `method2` with a similar name
| |
LL - 1u32.method(); LL | 1u32.method2();
LL + 1u32.method2(); | ~~~~~~~
|
error[E0599]: no method named `method` found for struct `Rc<&mut Box<&u32>>` in the current scope error[E0599]: no method named `method` found for struct `Rc<&mut Box<&u32>>` in the current scope
--> $DIR/no-method-suggested-traits.rs:26:44 --> $DIR/no-method-suggested-traits.rs:26:44
@ -40,9 +39,8 @@ LL + use no_method_suggested_traits::qux::PrivPub;
| |
help: there is a method `method2` with a similar name help: there is a method `method2` with a similar name
| |
LL - std::rc::Rc::new(&mut Box::new(&1u32)).method(); LL | std::rc::Rc::new(&mut Box::new(&1u32)).method2();
LL + std::rc::Rc::new(&mut Box::new(&1u32)).method2(); | ~~~~~~~
|
error[E0599]: no method named `method` found for type `char` in the current scope error[E0599]: no method named `method` found for type `char` in the current scope
--> $DIR/no-method-suggested-traits.rs:30:9 --> $DIR/no-method-suggested-traits.rs:30:9
@ -60,9 +58,8 @@ LL + use foo::Bar;
| |
help: there is a method `method2` with a similar name help: there is a method `method2` with a similar name
| |
LL - 'a'.method(); LL | 'a'.method2();
LL + 'a'.method2(); | ~~~~~~~
|
error[E0599]: no method named `method` found for struct `Rc<&mut Box<&char>>` in the current scope error[E0599]: no method named `method` found for struct `Rc<&mut Box<&char>>` in the current scope
--> $DIR/no-method-suggested-traits.rs:32:43 --> $DIR/no-method-suggested-traits.rs:32:43
@ -77,9 +74,8 @@ LL + use foo::Bar;
| |
help: there is a method `method2` with a similar name help: there is a method `method2` with a similar name
| |
LL - std::rc::Rc::new(&mut Box::new(&'a')).method(); LL | std::rc::Rc::new(&mut Box::new(&'a')).method2();
LL + std::rc::Rc::new(&mut Box::new(&'a')).method2(); | ~~~~~~~
|
error[E0599]: no method named `method` found for type `i32` in the current scope error[E0599]: no method named `method` found for type `i32` in the current scope
--> $DIR/no-method-suggested-traits.rs:35:10 --> $DIR/no-method-suggested-traits.rs:35:10
@ -99,9 +95,8 @@ LL + use no_method_suggested_traits::foo::PubPub;
| |
help: there is a method `method3` with a similar name help: there is a method `method3` with a similar name
| |
LL - 1i32.method(); LL | 1i32.method3();
LL + 1i32.method3(); | ~~~~~~~
|
error[E0599]: no method named `method` found for struct `Rc<&mut Box<&i32>>` in the current scope error[E0599]: no method named `method` found for struct `Rc<&mut Box<&i32>>` in the current scope
--> $DIR/no-method-suggested-traits.rs:37:44 --> $DIR/no-method-suggested-traits.rs:37:44
@ -116,9 +111,8 @@ LL + use no_method_suggested_traits::foo::PubPub;
| |
help: there is a method `method3` with a similar name help: there is a method `method3` with a similar name
| |
LL - std::rc::Rc::new(&mut Box::new(&1i32)).method(); LL | std::rc::Rc::new(&mut Box::new(&1i32)).method3();
LL + std::rc::Rc::new(&mut Box::new(&1i32)).method3(); | ~~~~~~~
|
error[E0599]: no method named `method` found for struct `Foo` in the current scope error[E0599]: no method named `method` found for struct `Foo` in the current scope
--> $DIR/no-method-suggested-traits.rs:40:9 --> $DIR/no-method-suggested-traits.rs:40:9

View file

@ -37,9 +37,8 @@ LL | | }
| |_____^ | |_____^
help: you might have meant to use the following enum variant help: you might have meant to use the following enum variant
| |
LL - B; LL | B::B1;
LL + B::B1; | ~~~~~
|
error[E0425]: cannot find value `C` in this scope error[E0425]: cannot find value `C` in this scope
--> $DIR/glob-resolve1.rs:29:5 --> $DIR/glob-resolve1.rs:29:5

View file

@ -32,9 +32,8 @@ LL | use foo::{self};
= note: `foo` must be defined only once in the type namespace of this module = note: `foo` must be defined only once in the type namespace of this module
help: you can use `as` to change the binding name of the import help: you can use `as` to change the binding name of the import
| |
LL - use foo::{self}; LL | use foo::{self as other_foo};
LL + use foo::{self as other_foo}; | ~~~~~~~~~~~~~~~~~
|
error[E0255]: the name `foo` is defined multiple times error[E0255]: the name `foo` is defined multiple times
--> $DIR/import-self.rs:12:5 --> $DIR/import-self.rs:12:5

View file

@ -11,9 +11,8 @@ LL | Foo::Bar => {}
| |
help: use the tuple variant pattern syntax instead help: use the tuple variant pattern syntax instead
| |
LL - Foo::Bar => {} LL | Foo::Bar(_) => {}
LL + Foo::Bar(_) => {} | ~~~~~~~~~~~
|
help: a unit variant with a similar name exists help: a unit variant with a similar name exists
| |
LL - Foo::Bar => {} LL - Foo::Bar => {}

View file

@ -6,9 +6,8 @@ LL | 3.f()
| |
help: you must specify a concrete type for this numeric value, like `i32` help: you must specify a concrete type for this numeric value, like `i32`
| |
LL - 3.f() LL | 3_i32.f()
LL + 3_i32.f() | ~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -6,9 +6,8 @@ LL | let a = (1.0).pow(1.0);
| |
help: you must specify a concrete type for this numeric value, like `f32` help: you must specify a concrete type for this numeric value, like `f32`
| |
LL - let a = (1.0).pow(1.0); LL | let a = (1.0_f32).pow(1.0);
LL + let a = (1.0_f32).pow(1.0); | ~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -14,9 +14,8 @@ LL | S(Either::Right(_)) => {}
| ++ + | ++ +
help: you might have meant to use field `0` whose type is `Either<usize, usize>` help: you might have meant to use field `0` whose type is `Either<usize, usize>`
| |
LL - match S(Either::Left(5)) { LL | match S(Either::Left(5)).0 {
LL + match S(Either::Left(5)).0 { | ~~~~~~~~~~~~~~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -16,9 +16,8 @@ LL + use reexported_trait::Trait;
| |
help: there is a method `trait_method_b` with a similar name help: there is a method `trait_method_b` with a similar name
| |
LL - reexported_trait::FooStruct.trait_method(); LL | reexported_trait::FooStruct.trait_method_b();
LL + reexported_trait::FooStruct.trait_method_b(); | ~~~~~~~~~~~~~~
|
error[E0599]: no method named `trait_method_b` found for struct `FooStruct` in the current scope error[E0599]: no method named `trait_method_b` found for struct `FooStruct` in the current scope
--> $DIR/issue-56175.rs:7:33 --> $DIR/issue-56175.rs:7:33

View file

@ -11,9 +11,8 @@ LL | #![deny(let_underscore_drop)]
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
help: consider binding to an unused variable to avoid immediately dropping the value help: consider binding to an unused variable to avoid immediately dropping the value
| |
LL - let _ = foo(); LL | let _unused = foo();
LL + let _unused = foo(); | ~~~~~~~
|
help: consider immediately dropping the value help: consider immediately dropping the value
| |
LL - let _ = foo(); LL - let _ = foo();

View file

@ -28,9 +28,8 @@ LL | let _ = field;
| |
help: consider binding to an unused variable to avoid immediately dropping the value help: consider binding to an unused variable to avoid immediately dropping the value
| |
LL - let _ = field; LL | let _unused = field;
LL + let _unused = field; | ~~~~~~~
|
help: consider immediately dropping the value help: consider immediately dropping the value
| |
LL - let _ = field; LL - let _ = field;

View file

@ -11,9 +11,8 @@ LL | #![warn(let_underscore_drop)]
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
help: consider binding to an unused variable to avoid immediately dropping the value help: consider binding to an unused variable to avoid immediately dropping the value
| |
LL - let _ = NontrivialDrop; LL | let _unused = NontrivialDrop;
LL + let _unused = NontrivialDrop; | ~~~~~~~
|
help: consider immediately dropping the value help: consider immediately dropping the value
| |
LL - let _ = NontrivialDrop; LL - let _ = NontrivialDrop;

View file

@ -7,9 +7,8 @@ LL | let _ = data.lock().unwrap();
= note: `#[deny(let_underscore_lock)]` on by default = note: `#[deny(let_underscore_lock)]` on by default
help: consider binding to an unused variable to avoid immediately dropping the value help: consider binding to an unused variable to avoid immediately dropping the value
| |
LL - let _ = data.lock().unwrap(); LL | let _unused = data.lock().unwrap();
LL + let _unused = data.lock().unwrap(); | ~~~~~~~
|
help: consider immediately dropping the value help: consider immediately dropping the value
| |
LL - let _ = data.lock().unwrap(); LL - let _ = data.lock().unwrap();
@ -24,9 +23,8 @@ LL | let _ = data.lock();
| |
help: consider binding to an unused variable to avoid immediately dropping the value help: consider binding to an unused variable to avoid immediately dropping the value
| |
LL - let _ = data.lock(); LL | let _unused = data.lock();
LL + let _unused = data.lock(); | ~~~~~~~
|
help: consider immediately dropping the value help: consider immediately dropping the value
| |
LL - let _ = data.lock(); LL - let _ = data.lock();
@ -42,9 +40,8 @@ LL | let (_, _) = (data.lock(), 1);
= help: consider immediately dropping the value using `drop(..)` after the `let` statement = help: consider immediately dropping the value using `drop(..)` after the `let` statement
help: consider binding to an unused variable to avoid immediately dropping the value help: consider binding to an unused variable to avoid immediately dropping the value
| |
LL - let (_, _) = (data.lock(), 1); LL | let (_unused, _) = (data.lock(), 1);
LL + let (_unused, _) = (data.lock(), 1); | ~~~~~~~
|
error: non-binding let on a synchronization lock error: non-binding let on a synchronization lock
--> $DIR/let_underscore_lock.rs:16:26 --> $DIR/let_underscore_lock.rs:16:26
@ -55,9 +52,8 @@ LL | let (_a, Struct { a: _ }) = (0, Struct { a: data.lock() });
= help: consider immediately dropping the value using `drop(..)` after the `let` statement = help: consider immediately dropping the value using `drop(..)` after the `let` statement
help: consider binding to an unused variable to avoid immediately dropping the value help: consider binding to an unused variable to avoid immediately dropping the value
| |
LL - let (_a, Struct { a: _ }) = (0, Struct { a: data.lock() }); LL | let (_a, Struct { a: _unused }) = (0, Struct { a: data.lock() });
LL + let (_a, Struct { a: _unused }) = (0, Struct { a: data.lock() }); | ~~~~~~~
|
error: non-binding let on a synchronization lock error: non-binding let on a synchronization lock
--> $DIR/let_underscore_lock.rs:18:6 --> $DIR/let_underscore_lock.rs:18:6

View file

@ -9,9 +9,8 @@ LL | let _y = &X;
= note: `#[warn(static_mut_refs)]` on by default = note: `#[warn(static_mut_refs)]` on by default
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - let _y = &X; LL | let _y = &raw const X;
LL + let _y = &raw const X; | ~~~~~~~~~~
|
warning: creating a mutable reference to mutable static is discouraged warning: creating a mutable reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:42:18 --> $DIR/static-mut-refs.rs:42:18
@ -46,9 +45,8 @@ LL | let (_b, _c) = (&X, &Y);
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - let (_b, _c) = (&X, &Y); LL | let (_b, _c) = (&raw const X, &Y);
LL + let (_b, _c) = (&raw const X, &Y); | ~~~~~~~~~~
|
warning: creating a shared reference to mutable static is discouraged warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:54:29 --> $DIR/static-mut-refs.rs:54:29
@ -60,9 +58,8 @@ LL | let (_b, _c) = (&X, &Y);
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - let (_b, _c) = (&X, &Y); LL | let (_b, _c) = (&X, &raw const Y);
LL + let (_b, _c) = (&X, &raw const Y); | ~~~~~~~~~~
|
warning: creating a shared reference to mutable static is discouraged warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:60:13 --> $DIR/static-mut-refs.rs:60:13
@ -74,9 +71,8 @@ LL | foo(&X);
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - foo(&X); LL | foo(&raw const X);
LL + foo(&raw const X); | ~~~~~~~~~~
|
warning: creating a shared reference to mutable static is discouraged warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:66:17 --> $DIR/static-mut-refs.rs:66:17
@ -106,9 +102,8 @@ LL | let _v = &A.value;
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - let _v = &A.value; LL | let _v = &raw const A.value;
LL + let _v = &raw const A.value; | ~~~~~~~~~~
|
warning: creating a shared reference to mutable static is discouraged warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:80:18 --> $DIR/static-mut-refs.rs:80:18
@ -120,9 +115,8 @@ LL | let _s = &A.s.value;
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - let _s = &A.s.value; LL | let _s = &raw const A.s.value;
LL + let _s = &raw const A.s.value; | ~~~~~~~~~~
|
warning: creating a shared reference to mutable static is discouraged warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:84:22 --> $DIR/static-mut-refs.rs:84:22

View file

@ -9,9 +9,8 @@ LL | let _y = &X;
= note: `#[deny(static_mut_refs)]` on by default = note: `#[deny(static_mut_refs)]` on by default
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - let _y = &X; LL | let _y = &raw const X;
LL + let _y = &raw const X; | ~~~~~~~~~~
|
error: creating a mutable reference to mutable static is discouraged error: creating a mutable reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:42:18 --> $DIR/static-mut-refs.rs:42:18
@ -46,9 +45,8 @@ LL | let (_b, _c) = (&X, &Y);
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - let (_b, _c) = (&X, &Y); LL | let (_b, _c) = (&raw const X, &Y);
LL + let (_b, _c) = (&raw const X, &Y); | ~~~~~~~~~~
|
error: creating a shared reference to mutable static is discouraged error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:54:29 --> $DIR/static-mut-refs.rs:54:29
@ -60,9 +58,8 @@ LL | let (_b, _c) = (&X, &Y);
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - let (_b, _c) = (&X, &Y); LL | let (_b, _c) = (&X, &raw const Y);
LL + let (_b, _c) = (&X, &raw const Y); | ~~~~~~~~~~
|
error: creating a shared reference to mutable static is discouraged error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:60:13 --> $DIR/static-mut-refs.rs:60:13
@ -74,9 +71,8 @@ LL | foo(&X);
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - foo(&X); LL | foo(&raw const X);
LL + foo(&raw const X); | ~~~~~~~~~~
|
error: creating a shared reference to mutable static is discouraged error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:66:17 --> $DIR/static-mut-refs.rs:66:17
@ -106,9 +102,8 @@ LL | let _v = &A.value;
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - let _v = &A.value; LL | let _v = &raw const A.value;
LL + let _v = &raw const A.value; | ~~~~~~~~~~
|
error: creating a shared reference to mutable static is discouraged error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:80:18 --> $DIR/static-mut-refs.rs:80:18
@ -120,9 +115,8 @@ LL | let _s = &A.s.value;
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - let _s = &A.s.value; LL | let _s = &raw const A.s.value;
LL + let _s = &raw const A.s.value; | ~~~~~~~~~~
|
error: creating a shared reference to mutable static is discouraged error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:84:22 --> $DIR/static-mut-refs.rs:84:22

View file

@ -66,9 +66,8 @@ LL | let fail: i128 = 0x8000_0000_0000_0000_0000_0000_0000_0000;
= help: consider using the type `u128` instead = help: consider using the type `u128` instead
help: to use as a negative number (decimal `-170141183460469231731687303715884105728`), consider using the type `u128` for the literal and cast it to `i128` help: to use as a negative number (decimal `-170141183460469231731687303715884105728`), consider using the type `u128` for the literal and cast it to `i128`
| |
LL - let fail: i128 = 0x8000_0000_0000_0000_0000_0000_0000_0000; LL | let fail: i128 = 0x8000_0000_0000_0000_0000_0000_0000_0000u128 as i128;
LL + let fail: i128 = 0x8000_0000_0000_0000_0000_0000_0000_0000u128 as i128; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
warning: literal out of range for `i32` warning: literal out of range for `i32`
--> $DIR/type-overflow.rs:27:16 --> $DIR/type-overflow.rs:27:16
@ -117,9 +116,8 @@ LL | let fail = 0x8FFF_FFFF_FFFF_FFFE;
= help: consider using the type `u64` instead = help: consider using the type `u64` instead
help: to use as a negative number (decimal `-2`), consider using the type `u32` for the literal and cast it to `i32` help: to use as a negative number (decimal `-2`), consider using the type `u32` for the literal and cast it to `i32`
| |
LL - let fail = 0x8FFF_FFFF_FFFF_FFFE; LL | let fail = 0x8FFF_FFFF_FFFF_FFFEu32 as i32;
LL + let fail = 0x8FFF_FFFF_FFFF_FFFEu32 as i32; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
warning: literal out of range for `i8` warning: literal out of range for `i8`
--> $DIR/type-overflow.rs:46:17 --> $DIR/type-overflow.rs:46:17

View file

@ -12,9 +12,8 @@ LL | #![deny(unused)]
= note: `#[deny(unused_variables)]` implied by `#[deny(unused)]` = note: `#[deny(unused_variables)]` implied by `#[deny(unused)]`
help: try ignoring the field help: try ignoring the field
| |
LL - A { i, j } | B { i, j } => { LL | A { i, j: _ } | B { i, j: _ } => {
LL + A { i, j: _ } | B { i, j: _ } => { | ~~~~ ~~~~
|
error: unused variable: `j` error: unused variable: `j`
--> $DIR/issue-67691-unused-field-in-or-pattern.rs:30:16 --> $DIR/issue-67691-unused-field-in-or-pattern.rs:30:16
@ -36,9 +35,8 @@ LL | Some(A { i, j } | B { i, j }) => {
| |
help: try ignoring the field help: try ignoring the field
| |
LL - Some(A { i, j } | B { i, j }) => { LL | Some(A { i, j: _ } | B { i, j: _ }) => {
LL + Some(A { i, j: _ } | B { i, j: _ }) => { | ~~~~ ~~~~
|
error: unused variable: `j` error: unused variable: `j`
--> $DIR/issue-67691-unused-field-in-or-pattern.rs:52:21 --> $DIR/issue-67691-unused-field-in-or-pattern.rs:52:21

View file

@ -627,9 +627,8 @@ LL | cmp!(a, b);
| |
help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
| |
LL - cmp!(a, b); LL | cmp!(std::ptr::addr_eq(a, b));
LL + cmp!(std::ptr::addr_eq(a, b)); | ++++++++++++++++++ +
|
warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
--> $DIR/wide_pointer_comparisons.rs:159:39 --> $DIR/wide_pointer_comparisons.rs:159:39

View file

@ -13,9 +13,8 @@ LL | #![warn(edition_2024_expr_fragment_specifier)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: to keep the existing behavior, use the `expr_2021` fragment specifier help: to keep the existing behavior, use the `expr_2021` fragment specifier
| |
LL - ($e:expr) => { LL | ($e:expr_2021) => {
LL + ($e:expr_2021) => { | ~~~~~~~~~
|
warning: the `expr` fragment specifier will accept more expressions in the 2024 edition warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
--> $DIR/expr_2021_cargo_fix_edition.rs:11:11 --> $DIR/expr_2021_cargo_fix_edition.rs:11:11
@ -27,9 +26,8 @@ LL | ($($i:expr)*) => { };
= note: for more information, see Migration Guide <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/macro-fragment-specifiers.html> = note: for more information, see Migration Guide <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/macro-fragment-specifiers.html>
help: to keep the existing behavior, use the `expr_2021` fragment specifier help: to keep the existing behavior, use the `expr_2021` fragment specifier
| |
LL - ($($i:expr)*) => { }; LL | ($($i:expr_2021)*) => { };
LL + ($($i:expr_2021)*) => { }; | ~~~~~~~~~
|
warning: 2 warnings emitted warning: 2 warnings emitted

View file

@ -43,9 +43,8 @@ LL | real_method_stmt!();
= note: this error originates in the macro `real_method_stmt` (in Nightly builds, run with -Z macro-backtrace for more info) = note: this error originates in the macro `real_method_stmt` (in Nightly builds, run with -Z macro-backtrace for more info)
help: you must specify a concrete type for this numeric value, like `f32` help: you must specify a concrete type for this numeric value, like `f32`
| |
LL - 2.0.neg() LL | 2.0_f32.neg()
LL + 2.0_f32.neg() | ~~~~~~~
|
error[E0599]: no method named `fake` found for type `{integer}` in the current scope error[E0599]: no method named `fake` found for type `{integer}` in the current scope
--> $DIR/macro-backtrace-invalid-internals.rs:23:13 --> $DIR/macro-backtrace-invalid-internals.rs:23:13
@ -92,9 +91,8 @@ LL | let _ = real_method_expr!();
= note: this error originates in the macro `real_method_expr` (in Nightly builds, run with -Z macro-backtrace for more info) = note: this error originates in the macro `real_method_expr` (in Nightly builds, run with -Z macro-backtrace for more info)
help: you must specify a concrete type for this numeric value, like `f32` help: you must specify a concrete type for this numeric value, like `f32`
| |
LL - 2.0.neg() LL | 2.0_f32.neg()
LL + 2.0_f32.neg() | ~~~~~~~
|
error: aborting due to 8 previous errors error: aborting due to 8 previous errors

View file

@ -181,9 +181,8 @@ LL | let _res: i32 = ..6.take(2).sum();
| |
help: you must specify a concrete type for this numeric value, like `i32` help: you must specify a concrete type for this numeric value, like `i32`
| |
LL - let _res: i32 = ..6.take(2).sum(); LL | let _res: i32 = ..6_i32.take(2).sum();
LL + let _res: i32 = ..6_i32.take(2).sum(); | ~~~~~
|
error: aborting due to 18 previous errors error: aborting due to 18 previous errors

View file

@ -6,9 +6,8 @@ LL | let x = 2.0.neg();
| |
help: you must specify a concrete type for this numeric value, like `f32` help: you must specify a concrete type for this numeric value, like `f32`
| |
LL - let x = 2.0.neg(); LL | let x = 2.0_f32.neg();
LL + let x = 2.0_f32.neg(); | ~~~~~~~
|
error[E0689]: can't call method `neg` on ambiguous numeric type `{float}` error[E0689]: can't call method `neg` on ambiguous numeric type `{float}`
--> $DIR/method-on-ambiguous-numeric-type.rs:17:15 --> $DIR/method-on-ambiguous-numeric-type.rs:17:15

View file

@ -11,9 +11,8 @@ LL | let x: i32 = 3;
= note: the matched value is of type `i32` = note: the matched value is of type `i32`
help: introduce a variable instead help: introduce a variable instead
| |
LL - let x: i32 = 3; LL | let x_var: i32 = 3;
LL + let x_var: i32 = 3; | ~~~~~
|
error[E0005]: refutable pattern in local binding error[E0005]: refutable pattern in local binding
--> $DIR/issue-112269.rs:7:9 --> $DIR/issue-112269.rs:7:9
@ -28,9 +27,8 @@ LL | let y = 4;
= note: the matched value is of type `i32` = note: the matched value is of type `i32`
help: introduce a variable instead help: introduce a variable instead
| |
LL - let y = 4; LL | let y_var = 4;
LL + let y_var = 4; | ~~~~~
|
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -195,9 +195,8 @@ LL | [t, t];
| - you could clone this value | - you could clone this value
help: consider further restricting type parameter `T` with trait `Copy` help: consider further restricting type parameter `T` with trait `Copy`
| |
LL - T:, LL | T:, T: Copy
LL + T:, T: Copy | ~~~~~~~~~
|
error: aborting due to 11 previous errors error: aborting due to 11 previous errors

View file

@ -33,9 +33,8 @@ LL | with_signature(x, |mut y| Box::new(y.next()))
| |
help: consider adding an explicit lifetime bound help: consider adding an explicit lifetime bound
| |
LL - T: Iterator, LL | T: Iterator, <T as Iterator>::Item: 'a
LL + T: Iterator, <T as Iterator>::Item: 'a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
note: external requirements note: external requirements
--> $DIR/projection-no-regions-closure.rs:34:23 --> $DIR/projection-no-regions-closure.rs:34:23
@ -96,9 +95,8 @@ LL | with_signature(x, |mut y| Box::new(y.next()))
| |
help: consider adding an explicit lifetime bound help: consider adding an explicit lifetime bound
| |
LL - T: 'b + Iterator, LL | T: 'b + Iterator, <T as Iterator>::Item: 'a
LL + T: 'b + Iterator, <T as Iterator>::Item: 'a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
note: external requirements note: external requirements
--> $DIR/projection-no-regions-closure.rs:52:23 --> $DIR/projection-no-regions-closure.rs:52:23

View file

@ -9,9 +9,8 @@ LL | Box::new(x.next())
| |
help: consider adding an explicit lifetime bound help: consider adding an explicit lifetime bound
| |
LL - T: Iterator, LL | T: Iterator, <T as Iterator>::Item: 'a
LL + T: Iterator, <T as Iterator>::Item: 'a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error[E0309]: the associated type `<T as Iterator>::Item` may not live long enough error[E0309]: the associated type `<T as Iterator>::Item` may not live long enough
--> $DIR/projection-no-regions-fn.rs:28:5 --> $DIR/projection-no-regions-fn.rs:28:5
@ -24,9 +23,8 @@ LL | Box::new(x.next())
| |
help: consider adding an explicit lifetime bound help: consider adding an explicit lifetime bound
| |
LL - T: 'b + Iterator, LL | T: 'b + Iterator, <T as Iterator>::Item: 'a
LL + T: 'b + Iterator, <T as Iterator>::Item: 'a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -34,9 +34,8 @@ LL | with_signature(cell, t, |cell, t| require(cell, t));
| |
help: consider adding an explicit lifetime bound help: consider adding an explicit lifetime bound
| |
LL - T: Anything<'b, 'c>, LL | T: Anything<'b, 'c>, <T as Anything<'b/#0, 'c/#1>>::AssocType: 'a
LL + T: Anything<'b, 'c>, <T as Anything<'b/#0, 'c/#1>>::AssocType: 'a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
note: external requirements note: external requirements
--> $DIR/projection-two-region-trait-bound-closure.rs:48:29 --> $DIR/projection-two-region-trait-bound-closure.rs:48:29
@ -74,9 +73,8 @@ LL | with_signature(cell, t, |cell, t| require(cell, t));
| |
help: consider adding an explicit lifetime bound help: consider adding an explicit lifetime bound
| |
LL - 'a: 'a, LL | 'a: 'a, <T as Anything<'b/#1, 'c/#2>>::AssocType: 'a
LL + 'a: 'a, <T as Anything<'b/#1, 'c/#2>>::AssocType: 'a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
note: external requirements note: external requirements
--> $DIR/projection-two-region-trait-bound-closure.rs:61:29 --> $DIR/projection-two-region-trait-bound-closure.rs:61:29

View file

@ -9,9 +9,8 @@ LL | bar::<T::Output>()
| |
help: consider adding an explicit lifetime bound help: consider adding an explicit lifetime bound
| |
LL - <T as MyTrait<'a>>::Output: 'b, LL | <T as MyTrait<'a>>::Output: 'b, <T as MyTrait<'a>>::Output: 'a
LL + <T as MyTrait<'a>>::Output: 'b, <T as MyTrait<'a>>::Output: 'a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -9,9 +9,8 @@ LL | bar::<<T as MyTrait<'a>>::Output>()
| |
help: consider adding an explicit lifetime bound help: consider adding an explicit lifetime bound
| |
LL - <T as MyTrait<'b>>::Output: 'a, LL | <T as MyTrait<'b>>::Output: 'a, <T as MyTrait<'a>>::Output: 'a
LL + <T as MyTrait<'b>>::Output: 'a, <T as MyTrait<'a>>::Output: 'a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -11,9 +11,8 @@ LL | let _hair_space_around = 'x';
| ^^ | ^^
help: consider removing the non-printing characters help: consider removing the non-printing characters
| |
LL - let _hair_space_around = 'x'; LL | let _hair_space_around = 'x';
LL + let _hair_space_around = 'x'; | ~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -11,9 +11,8 @@ LL | }
| |
help: if you meant to call a macro, try help: if you meant to call a macro, try
| |
LL - f(); LL | f!();
LL + f!(); | ~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -8,9 +8,8 @@ LL | Foo:Bar => {}
| |
help: maybe write a path separator here help: maybe write a path separator here
| |
LL - Foo:Bar => {} LL | Foo::Bar => {}
LL + Foo::Bar => {} | ~~
|
error: expected one of `!`, `(`, `...`, `..=`, `..`, `::`, `{`, or `|`, found `:` error: expected one of `!`, `(`, `...`, `..=`, `..`, `::`, `{`, or `|`, found `:`
--> $DIR/issue-87086-colon-path-sep.rs:23:17 --> $DIR/issue-87086-colon-path-sep.rs:23:17
@ -22,9 +21,8 @@ LL | qux::Foo:Bar => {}
| |
help: maybe write a path separator here help: maybe write a path separator here
| |
LL - qux::Foo:Bar => {} LL | qux::Foo::Bar => {}
LL + qux::Foo::Bar => {} | ~~
|
error: expected one of `@` or `|`, found `:` error: expected one of `@` or `|`, found `:`
--> $DIR/issue-87086-colon-path-sep.rs:29:12 --> $DIR/issue-87086-colon-path-sep.rs:29:12
@ -36,9 +34,8 @@ LL | qux:Foo::Baz => {}
| |
help: maybe write a path separator here help: maybe write a path separator here
| |
LL - qux:Foo::Baz => {} LL | qux::Foo::Baz => {}
LL + qux::Foo::Baz => {} | ~~
|
error: expected one of `@` or `|`, found `:` error: expected one of `@` or `|`, found `:`
--> $DIR/issue-87086-colon-path-sep.rs:35:12 --> $DIR/issue-87086-colon-path-sep.rs:35:12
@ -64,9 +61,8 @@ LL | if let Foo:Bar = f() {
| |
help: maybe write a path separator here help: maybe write a path separator here
| |
LL - if let Foo:Bar = f() { LL | if let Foo::Bar = f() {
LL + if let Foo::Bar = f() { | ~~
|
error: expected one of `@` or `|`, found `:` error: expected one of `@` or `|`, found `:`
--> $DIR/issue-87086-colon-path-sep.rs:49:16 --> $DIR/issue-87086-colon-path-sep.rs:49:16
@ -106,9 +102,8 @@ LL | Foo:Bar::Baz => {}
| |
help: maybe write a path separator here help: maybe write a path separator here
| |
LL - Foo:Bar::Baz => {} LL | Foo::Bar::Baz => {}
LL + Foo::Bar::Baz => {} | ~~
|
error: expected one of `@` or `|`, found `:` error: expected one of `@` or `|`, found `:`
--> $DIR/issue-87086-colon-path-sep.rs:75:12 --> $DIR/issue-87086-colon-path-sep.rs:75:12
@ -120,9 +115,8 @@ LL | Foo:Bar => {}
| |
help: maybe write a path separator here help: maybe write a path separator here
| |
LL - Foo:Bar => {} LL | Foo::Bar => {}
LL + Foo::Bar => {} | ~~
|
warning: irrefutable `if let` pattern warning: irrefutable `if let` pattern
--> $DIR/issue-87086-colon-path-sep.rs:40:8 --> $DIR/issue-87086-colon-path-sep.rs:40:8

View file

@ -6,9 +6,8 @@ LL | main();
| |
help: if you meant to call a macro, try help: if you meant to call a macro, try
| |
LL - main(); LL | main!();
LL + main!(); | ~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -6,9 +6,8 @@ LL | cons A: u8 = 10;
| |
help: there is a keyword `const` with a similar name help: there is a keyword `const` with a similar name
| |
LL - cons A: u8 = 10; LL | const A: u8 = 10;
LL + const A: u8 = 10; | ~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -7,9 +7,8 @@ LL | let x = Tr<A, A:>;
= note: type ascription syntax has been removed, see issue #101728 <https://github.com/rust-lang/rust/issues/101728> = note: type ascription syntax has been removed, see issue #101728 <https://github.com/rust-lang/rust/issues/101728>
help: maybe write a path separator here help: maybe write a path separator here
| |
LL - let x = Tr<A, A:>; LL | let x = Tr<A, A::>;
LL + let x = Tr<A, A::>; | ~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -7,9 +7,8 @@ LL | use std::process:Command;
= note: import paths are delimited using `::` = note: import paths are delimited using `::`
help: use double colon help: use double colon
| |
LL - use std::process:Command; LL | use std::process::Command;
LL + use std::process::Command; | ~~
|
error: expected `::`, found `:` error: expected `::`, found `:`
--> $DIR/use-colon-as-mod-sep.rs:5:8 --> $DIR/use-colon-as-mod-sep.rs:5:8
@ -20,9 +19,8 @@ LL | use std:fs::File;
= note: import paths are delimited using `::` = note: import paths are delimited using `::`
help: use double colon help: use double colon
| |
LL - use std:fs::File; LL | use std::fs::File;
LL + use std::fs::File; | ~~
|
error: expected `::`, found `:` error: expected `::`, found `:`
--> $DIR/use-colon-as-mod-sep.rs:7:8 --> $DIR/use-colon-as-mod-sep.rs:7:8
@ -33,9 +31,8 @@ LL | use std:collections:HashMap;
= note: import paths are delimited using `::` = note: import paths are delimited using `::`
help: use double colon help: use double colon
| |
LL - use std:collections:HashMap; LL | use std::collections:HashMap;
LL + use std::collections:HashMap; | ~~
|
error: expected `::`, found `:` error: expected `::`, found `:`
--> $DIR/use-colon-as-mod-sep.rs:7:20 --> $DIR/use-colon-as-mod-sep.rs:7:20
@ -46,9 +43,8 @@ LL | use std:collections:HashMap;
= note: import paths are delimited using `::` = note: import paths are delimited using `::`
help: use double colon help: use double colon
| |
LL - use std:collections:HashMap; LL | use std:collections::HashMap;
LL + use std:collections::HashMap; | ~~
|
error: aborting due to 4 previous errors error: aborting due to 4 previous errors

View file

@ -121,9 +121,8 @@ LL | pub enum E1 { Z0, Z1(), S(u8, u8, u8) }
| |
help: use the tuple variant pattern syntax instead help: use the tuple variant pattern syntax instead
| |
LL - E1::Z1 => {} LL | E1::Z1() => {}
LL + E1::Z1() => {} | ~~~~~~~~
|
help: a unit variant with a similar name exists help: a unit variant with a similar name exists
| |
LL - E1::Z1 => {} LL - E1::Z1 => {}

View file

@ -155,9 +155,8 @@ LL | E1::Z1 => {}
| |
help: use the tuple variant pattern syntax instead help: use the tuple variant pattern syntax instead
| |
LL - E1::Z1 => {} LL | E1::Z1() => {}
LL + E1::Z1() => {} | ~~~~~~~~
|
help: a unit variant with a similar name exists help: a unit variant with a similar name exists
| |
LL - E1::Z1 => {} LL - E1::Z1 => {}

View file

@ -6,9 +6,8 @@ LL | b.make_ascii_uppercase();
| |
help: consider changing this to be mutable help: consider changing this to be mutable
| |
LL - let &b = a; LL | let &(mut b) = a;
LL + let &(mut b) = a; | ~~~~~ +
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -6,9 +6,8 @@ LL | mutate(&mut x);
| |
help: consider changing this to be mutable help: consider changing this to be mutable
| |
LL - fn foo(&x: &i32) { LL | fn foo(&(mut x): &i32) {
LL + fn foo(&(mut x): &i32) { | ~~~~~ +
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -52,9 +52,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider making the fields publicly accessible help: consider making the fields publicly accessible
| |
LL - pub struct C(pub isize, isize); LL | pub struct C(pub isize, pub isize);
LL + pub struct C(pub isize, pub isize); | +++
|
error[E0603]: tuple struct constructor `A` is private error[E0603]: tuple struct constructor `A` is private
--> $DIR/privacy5.rs:56:12 --> $DIR/privacy5.rs:56:12
@ -262,9 +261,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider making the fields publicly accessible help: consider making the fields publicly accessible
| |
LL - pub struct C(pub isize, isize); LL | pub struct C(pub isize, pub isize);
LL + pub struct C(pub isize, pub isize); | +++
|
error[E0603]: tuple struct constructor `C` is private error[E0603]: tuple struct constructor `C` is private
--> $DIR/privacy5.rs:69:12 --> $DIR/privacy5.rs:69:12
@ -282,9 +280,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider making the fields publicly accessible help: consider making the fields publicly accessible
| |
LL - pub struct C(pub isize, isize); LL | pub struct C(pub isize, pub isize);
LL + pub struct C(pub isize, pub isize); | +++
|
error[E0603]: tuple struct constructor `C` is private error[E0603]: tuple struct constructor `C` is private
--> $DIR/privacy5.rs:70:12 --> $DIR/privacy5.rs:70:12
@ -302,9 +299,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider making the fields publicly accessible help: consider making the fields publicly accessible
| |
LL - pub struct C(pub isize, isize); LL | pub struct C(pub isize, pub isize);
LL + pub struct C(pub isize, pub isize); | +++
|
error[E0603]: tuple struct constructor `C` is private error[E0603]: tuple struct constructor `C` is private
--> $DIR/privacy5.rs:71:12 --> $DIR/privacy5.rs:71:12
@ -322,9 +318,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider making the fields publicly accessible help: consider making the fields publicly accessible
| |
LL - pub struct C(pub isize, isize); LL | pub struct C(pub isize, pub isize);
LL + pub struct C(pub isize, pub isize); | +++
|
error[E0603]: tuple struct constructor `C` is private error[E0603]: tuple struct constructor `C` is private
--> $DIR/privacy5.rs:72:18 --> $DIR/privacy5.rs:72:18
@ -342,9 +337,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider making the fields publicly accessible help: consider making the fields publicly accessible
| |
LL - pub struct C(pub isize, isize); LL | pub struct C(pub isize, pub isize);
LL + pub struct C(pub isize, pub isize); | +++
|
error[E0603]: tuple struct constructor `C` is private error[E0603]: tuple struct constructor `C` is private
--> $DIR/privacy5.rs:73:18 --> $DIR/privacy5.rs:73:18
@ -362,9 +356,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider making the fields publicly accessible help: consider making the fields publicly accessible
| |
LL - pub struct C(pub isize, isize); LL | pub struct C(pub isize, pub isize);
LL + pub struct C(pub isize, pub isize); | +++
|
error[E0603]: tuple struct constructor `C` is private error[E0603]: tuple struct constructor `C` is private
--> $DIR/privacy5.rs:74:18 --> $DIR/privacy5.rs:74:18
@ -382,9 +375,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider making the fields publicly accessible help: consider making the fields publicly accessible
| |
LL - pub struct C(pub isize, isize); LL | pub struct C(pub isize, pub isize);
LL + pub struct C(pub isize, pub isize); | +++
|
error[E0603]: tuple struct constructor `C` is private error[E0603]: tuple struct constructor `C` is private
--> $DIR/privacy5.rs:75:18 --> $DIR/privacy5.rs:75:18
@ -402,9 +394,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider making the fields publicly accessible help: consider making the fields publicly accessible
| |
LL - pub struct C(pub isize, isize); LL | pub struct C(pub isize, pub isize);
LL + pub struct C(pub isize, pub isize); | +++
|
error[E0603]: tuple struct constructor `A` is private error[E0603]: tuple struct constructor `A` is private
--> $DIR/privacy5.rs:83:17 --> $DIR/privacy5.rs:83:17
@ -460,9 +451,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider making the fields publicly accessible help: consider making the fields publicly accessible
| |
LL - pub struct C(pub isize, isize); LL | pub struct C(pub isize, pub isize);
LL + pub struct C(pub isize, pub isize); | +++
|
error[E0603]: tuple struct constructor `A` is private error[E0603]: tuple struct constructor `A` is private
--> $DIR/privacy5.rs:90:20 --> $DIR/privacy5.rs:90:20

View file

@ -6,9 +6,8 @@ LL | pub S (foo) bar
| |
help: if you meant to call a macro, try help: if you meant to call a macro, try
| |
LL - pub S (foo) bar LL | pub S! (foo) bar
LL + pub S! (foo) bar | ~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -9,9 +9,8 @@ LL | handle: Handle
| |
help: use struct literal syntax instead help: use struct literal syntax instead
| |
LL - handle: Handle LL | handle: Handle {}
LL + handle: Handle {} | ~~~~~~~~~
|
help: a local variable with a similar name exists help: a local variable with a similar name exists
| |
LL - handle: Handle LL - handle: Handle

View file

@ -18,9 +18,8 @@ LL | T::Baa: std::fmt::Debug,
| |
help: consider further restricting type parameter `T` with trait `Foo` help: consider further restricting type parameter `T` with trait `Foo`
| |
LL - T::Baa: std::fmt::Debug, LL | T::Baa: std::fmt::Debug, T: Foo
LL + T::Baa: std::fmt::Debug, T: Foo | ~~~~~~~~
|
help: ...and changing the associated type name help: ...and changing the associated type name
| |
LL - T::Baa: std::fmt::Debug, LL - T::Baa: std::fmt::Debug,

View file

@ -20,9 +20,8 @@ help: you might have meant to use one of the following enum variants
LL - A.foo(); LL - A.foo();
LL + (A::Tuple()).foo(); LL + (A::Tuple()).foo();
| |
LL - A.foo(); LL | A::Unit.foo();
LL + A::Unit.foo(); | ~~~~~~~
|
help: alternatively, the following enum variant is available help: alternatively, the following enum variant is available
| |
LL - A.foo(); LL - A.foo();
@ -61,9 +60,8 @@ LL | | }
| |_^ | |_^
help: you might have meant to use the following enum variant help: you might have meant to use the following enum variant
| |
LL - C.foo(); LL | C::Unit.foo();
LL + C::Unit.foo(); | ~~~~~~~
|
help: alternatively, the following enum variant is available help: alternatively, the following enum variant is available
| |
LL - C.foo(); LL - C.foo();
@ -86,9 +84,8 @@ LL | | }
| |_^ | |_^
help: you might have meant to use the following enum variant help: you might have meant to use the following enum variant
| |
LL - D.foo(); LL | D::Unit.foo();
LL + D::Unit.foo(); | ~~~~~~~
|
help: alternatively, the following enum variant is available help: alternatively, the following enum variant is available
| |
LL - D.foo(); LL - D.foo();
@ -144,12 +141,10 @@ LL | | }
| |_^ | |_^
help: try to match against one of the enum's variants help: try to match against one of the enum's variants
| |
LL - if let A(3) = x { } LL | if let A::Tuple(3) = x { }
LL + if let A::Tuple(3) = x { } | ~~~~~~~~
| LL | if let A::TupleWithFields(3) = x { }
LL - if let A(3) = x { } | ~~~~~~~~~~~~~~~~~~
LL + if let A::TupleWithFields(3) = x { }
|
error[E0423]: expected function, tuple struct or tuple variant, found enum `A` error[E0423]: expected function, tuple struct or tuple variant, found enum `A`
--> $DIR/issue-73427.rs:46:13 --> $DIR/issue-73427.rs:46:13
@ -171,12 +166,10 @@ LL | | }
| |_^ | |_^
help: try to construct one of the enum's variants help: try to construct one of the enum's variants
| |
LL - let x = A(3); LL | let x = A::Tuple(3);
LL + let x = A::Tuple(3); | ~~~~~~~~
| LL | let x = A::TupleWithFields(3);
LL - let x = A(3); | ~~~~~~~~~~~~~~~~~~
LL + let x = A::TupleWithFields(3);
|
error: aborting due to 7 previous errors error: aborting due to 7 previous errors

View file

@ -124,9 +124,8 @@ LL | | }
| |_____^ | |_____^
help: you might have meant to use the following enum variant help: you might have meant to use the following enum variant
| |
LL - let _: E = E; LL | let _: E = E::Unit;
LL + let _: E = E::Unit; | ~~~~~~~
|
help: alternatively, the following enum variant is available help: alternatively, the following enum variant is available
| |
LL - let _: E = E; LL - let _: E = E;

View file

@ -11,9 +11,8 @@ LL | const DEFAULT: u32 = 0;
= note: the matched value is of type `u32` = note: the matched value is of type `u32`
help: introduce a variable instead help: introduce a variable instead
| |
LL - let DEFAULT: u32 = 0; LL | let DEFAULT_var: u32 = 0;
LL + let DEFAULT_var: u32 = 0; | ~~~~~~~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -21,9 +21,8 @@ LL | const DEFAULT: u32 = 0;
= note: the matched value is of type `u32` = note: the matched value is of type `u32`
help: introduce a variable instead help: introduce a variable instead
| |
LL - let DEFAULT: u32 = 0; LL | let DEFAULT_var: u32 = 0;
LL + let DEFAULT_var: u32 = 0; | ~~~~~~~~~~~
|
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -66,9 +66,8 @@ LL | Self::BAR;
| ++++++ | ++++++
help: a constant with a similar name exists help: a constant with a similar name exists
| |
LL - BAR; LL | BARR;
LL + BARR; | ~~~~
|
error[E0412]: cannot find type `Baz` in this scope error[E0412]: cannot find type `Baz` in this scope
--> $DIR/typo-suggestion-for-variable-with-name-similar-to-struct-field.rs:37:18 --> $DIR/typo-suggestion-for-variable-with-name-similar-to-struct-field.rs:37:18

View file

@ -39,9 +39,8 @@ LL | modul::foo();
| |
help: there is a crate or module with a similar name help: there is a crate or module with a similar name
| |
LL - modul::foo(); LL | module::foo();
LL + module::foo(); | ~~~~~~
|
error[E0433]: failed to resolve: use of undeclared type `Trai` error[E0433]: failed to resolve: use of undeclared type `Trai`
--> $DIR/typo-suggestion-mistyped-in-path.rs:39:5 --> $DIR/typo-suggestion-mistyped-in-path.rs:39:5

View file

@ -11,9 +11,8 @@ LL | #![deny(stable_features)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
help: if you are using features which are still unstable, change to using `const_foobar` help: if you are using features which are still unstable, change to using `const_foobar`
| |
LL - #![feature(const_foo)] LL | #![feature(const_foobar)]
LL + #![feature(const_foobar)] | ~~~~~~~~~~~~
|
help: if you are using features which are now stable, remove this line help: if you are using features which are now stable, remove this line
| |
LL - #![feature(const_foo)] LL - #![feature(const_foo)]

View file

@ -11,9 +11,8 @@ LL | #![deny(stable_features)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
help: if you are using features which are still unstable, change to using `const_foobar` help: if you are using features which are still unstable, change to using `const_foobar`
| |
LL - #![feature(const_foo)] LL | #![feature(const_foobar)]
LL + #![feature(const_foobar)] | ~~~~~~~~~~~~
|
help: if you are using features which are now stable, remove this line help: if you are using features which are now stable, remove this line
| |
LL - #![feature(const_foo)] LL - #![feature(const_foo)]

View file

@ -11,9 +11,8 @@ LL | #![deny(stable_features)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
help: if you are using features which are still unstable, change to using `foobar` help: if you are using features which are still unstable, change to using `foobar`
| |
LL - #![feature(foo)] LL | #![feature(foobar)]
LL + #![feature(foobar)] | ~~~~~~
|
help: if you are using features which are now stable, remove this line help: if you are using features which are now stable, remove this line
| |
LL - #![feature(foo)] LL - #![feature(foo)]

View file

@ -11,9 +11,8 @@ LL | #![deny(stable_features)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
help: if you are using features which are still unstable, change to using `foobar` help: if you are using features which are still unstable, change to using `foobar`
| |
LL - #![feature(foo)] LL | #![feature(foobar)]
LL + #![feature(foobar)] | ~~~~~~
|
help: if you are using features which are now stable, remove this line help: if you are using features which are now stable, remove this line
| |
LL - #![feature(foo)] LL - #![feature(foo)]

View file

@ -9,9 +9,8 @@ LL | static n: &'static usize = unsafe { &n_mut };
= note: `#[warn(static_mut_refs)]` on by default = note: `#[warn(static_mut_refs)]` on by default
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - static n: &'static usize = unsafe { &n_mut }; LL | static n: &'static usize = unsafe { &raw const n_mut };
LL + static n: &'static usize = unsafe { &raw const n_mut }; | ~~~~~~~~~~
|
warning: 1 warning emitted warning: 1 warning emitted

View file

@ -9,9 +9,8 @@ LL | let _ = unsafe { (&TEST) as *const usize };
= note: `#[warn(static_mut_refs)]` on by default = note: `#[warn(static_mut_refs)]` on by default
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - let _ = unsafe { (&TEST) as *const usize }; LL | let _ = unsafe { (&raw const TEST) as *const usize };
LL + let _ = unsafe { (&raw const TEST) as *const usize }; | ~~~~~~~~~~
|
warning: creating a mutable reference to mutable static is discouraged warning: creating a mutable reference to mutable static is discouraged
--> $DIR/static-mut-shared-parens.rs:11:22 --> $DIR/static-mut-shared-parens.rs:11:22

View file

@ -54,9 +54,8 @@ LL | static_bound(&static_mut_xc::a);
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - static_bound(&static_mut_xc::a); LL | static_bound(&raw const static_mut_xc::a);
LL + static_bound(&raw const static_mut_xc::a); | ~~~~~~~~~~
|
warning: creating a mutable reference to mutable static is discouraged warning: creating a mutable reference to mutable static is discouraged
--> $DIR/static-mut-xc.rs:35:22 --> $DIR/static-mut-xc.rs:35:22

View file

@ -9,9 +9,8 @@ LL | static mut S: *const u8 = unsafe { &S as *const *const u8 as *const u8 };
= note: `#[warn(static_mut_refs)]` on by default = note: `#[warn(static_mut_refs)]` on by default
help: use `&raw const` instead to create a raw pointer help: use `&raw const` instead to create a raw pointer
| |
LL - static mut S: *const u8 = unsafe { &S as *const *const u8 as *const u8 }; LL | static mut S: *const u8 = unsafe { &raw const S as *const *const u8 as *const u8 };
LL + static mut S: *const u8 = unsafe { &raw const S as *const *const u8 as *const u8 }; | ~~~~~~~~~~
|
warning: creating a shared reference to mutable static is discouraged warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-recursive.rs:19:20 --> $DIR/static-recursive.rs:19:20

View file

@ -6,9 +6,8 @@ LL | bar : 42,
| |
help: a field with a similar name exists help: a field with a similar name exists
| |
LL - bar : 42, LL | barr : 42,
LL + barr : 42, | ~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -43,9 +43,8 @@ LL | println!("{:?} {:?}", x, y);
= note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider further restricting type parameter `Y` with trait `Debug` help: consider further restricting type parameter `Y` with trait `Debug`
| |
LL - fn test_no_bounds_where<X, Y>(x: X, y: Y) where X: std::fmt::Debug, { LL | fn test_no_bounds_where<X, Y>(x: X, y: Y) where X: std::fmt::Debug, Y: std::fmt::Debug {
LL + fn test_no_bounds_where<X, Y>(x: X, y: Y) where X: std::fmt::Debug, Y: std::fmt::Debug { | ~~~~~~~~~~~~~~~~~~~~
|
error[E0277]: `X` doesn't implement `Debug` error[E0277]: `X` doesn't implement `Debug`
--> $DIR/bound-suggestions.rs:33:22 --> $DIR/bound-suggestions.rs:33:22

View file

@ -12,9 +12,8 @@ LL | const A: i32 = 2;
= note: the matched value is of type `i32` = note: the matched value is of type `i32`
help: introduce a variable instead help: introduce a variable instead
| |
LL - let A = 3; LL | let A_var = 3;
LL + let A_var = 3; | ~~~~~
|
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -6,9 +6,8 @@ LL | use st::cell::Cell;
| |
help: there is a crate or module with a similar name help: there is a crate or module with a similar name
| |
LL - use st::cell::Cell; LL | use std::cell::Cell;
LL + use std::cell::Cell; | ~~~
|
error[E0432]: unresolved import `bas` error[E0432]: unresolved import `bas`
--> $DIR/crate-or-module-typo.rs:11:5 --> $DIR/crate-or-module-typo.rs:11:5
@ -30,9 +29,8 @@ LL | bar: st::cell::Cell<bool>
| |
help: there is a crate or module with a similar name help: there is a crate or module with a similar name
| |
LL - bar: st::cell::Cell<bool> LL | bar: std::cell::Cell<bool>
LL + bar: std::cell::Cell<bool> | ~~~
|
help: consider importing this module help: consider importing this module
| |
LL + use std::cell; LL + use std::cell;

View file

@ -20,9 +20,8 @@ LL | fn foo(&self) where Self: Other, { }
| +++++ | +++++
help: alternatively, consider constraining `foo` so it does not apply to trait objects help: alternatively, consider constraining `foo` so it does not apply to trait objects
| |
LL - fn foo() where Self: Other, { } LL | fn foo() where Self: Other, Self: Sized { }
LL + fn foo() where Self: Other, Self: Sized { } | ~~~~~~~~~~~~~
|
help: consider changing method `bar`'s `self` parameter to be `&self` help: consider changing method `bar`'s `self` parameter to be `&self`
| |
LL - fn bar(self: ()) {} LL - fn bar(self: ()) {}

View file

@ -11,9 +11,8 @@ LL | if let B::Fst = a {};
| |
help: you might have meant to use field `b` whose type is `B` help: you might have meant to use field `b` whose type is `B`
| |
LL - if let B::Fst = a {}; LL | if let B::Fst = a.b {};
LL + if let B::Fst = a.b {}; | ~~~
|
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/field-access.rs:25:9 --> $DIR/field-access.rs:25:9
@ -29,9 +28,8 @@ LL | B::Fst => (),
| |
help: you might have meant to use field `b` whose type is `B` help: you might have meant to use field `b` whose type is `B`
| |
LL - match a { LL | match a.b {
LL + match a.b { | ~~~
|
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/field-access.rs:26:9 --> $DIR/field-access.rs:26:9
@ -47,9 +45,8 @@ LL | B::Snd => (),
| |
help: you might have meant to use field `b` whose type is `B` help: you might have meant to use field `b` whose type is `B`
| |
LL - match a { LL | match a.b {
LL + match a.b { | ~~~
|
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/field-access.rs:32:9 --> $DIR/field-access.rs:32:9

View file

@ -14,9 +14,8 @@ LL | fn foo<X: Trait>(_: X) {}
| ^^^^^ required by this bound in `foo` | ^^^^^ required by this bound in `foo`
help: consider changing this borrow's mutability help: consider changing this borrow's mutability
| |
LL - foo(&s); LL | foo(&mut s);
LL + foo(&mut s); | ~~~~
|
error[E0277]: the trait bound `S: Trait` is not satisfied error[E0277]: the trait bound `S: Trait` is not satisfied
--> $DIR/imm-ref-trait-object-literal.rs:13:7 --> $DIR/imm-ref-trait-object-literal.rs:13:7

View file

@ -11,9 +11,8 @@ LL | fn g(mut x: impl Iterator<Item = &()>) -> Option<&'static ()> { x.next(
| +++++++ | +++++++
help: consider introducing a named lifetime parameter help: consider introducing a named lifetime parameter
| |
LL - fn g(mut x: impl Iterator<Item = &()>) -> Option<&()> { x.next() } LL | fn g<'a>(mut x: impl Iterator<Item = &'a ()>) -> Option<&'a ()> { x.next() }
LL + fn g<'a>(mut x: impl Iterator<Item = &'a ()>) -> Option<&'a ()> { x.next() } | ++++ ~~~ ~~~
|
help: alternatively, you might want to return an owned value help: alternatively, you might want to return an owned value
| |
LL - fn g(mut x: impl Iterator<Item = &()>) -> Option<&()> { x.next() } LL - fn g(mut x: impl Iterator<Item = &()>) -> Option<&()> { x.next() }
@ -33,9 +32,8 @@ LL | async fn i(mut x: impl Iterator<Item = &()>) -> Option<&'static ()> { x
| +++++++ | +++++++
help: consider introducing a named lifetime parameter help: consider introducing a named lifetime parameter
| |
LL - async fn i(mut x: impl Iterator<Item = &()>) -> Option<&()> { x.next() } LL | async fn i<'a>(mut x: impl Iterator<Item = &'a ()>) -> Option<&'a ()> { x.next() }
LL + async fn i<'a>(mut x: impl Iterator<Item = &'a ()>) -> Option<&'a ()> { x.next() } | ++++ ~~~ ~~~
|
help: alternatively, you might want to return an owned value help: alternatively, you might want to return an owned value
| |
LL - async fn i(mut x: impl Iterator<Item = &()>) -> Option<&()> { x.next() } LL - async fn i(mut x: impl Iterator<Item = &()>) -> Option<&()> { x.next() }
@ -101,9 +99,8 @@ LL | fn g(mut x: impl Foo) -> Option<&'static ()> { x.next() }
| +++++++ | +++++++
help: consider introducing a named lifetime parameter help: consider introducing a named lifetime parameter
| |
LL - fn g(mut x: impl Foo) -> Option<&()> { x.next() } LL | fn g<'a>(mut x: impl Foo) -> Option<&'a ()> { x.next() }
LL + fn g<'a>(mut x: impl Foo) -> Option<&'a ()> { x.next() } | ++++ ~~~
|
help: alternatively, you might want to return an owned value help: alternatively, you might want to return an owned value
| |
LL - fn g(mut x: impl Foo) -> Option<&()> { x.next() } LL - fn g(mut x: impl Foo) -> Option<&()> { x.next() }
@ -123,9 +120,8 @@ LL | fn g(mut x: impl Foo<()>) -> Option<&'static ()> { x.next() }
| +++++++ | +++++++
help: consider introducing a named lifetime parameter help: consider introducing a named lifetime parameter
| |
LL - fn g(mut x: impl Foo<()>) -> Option<&()> { x.next() } LL | fn g<'a>(mut x: impl Foo<()>) -> Option<&'a ()> { x.next() }
LL + fn g<'a>(mut x: impl Foo<()>) -> Option<&'a ()> { x.next() } | ++++ ~~~
|
help: alternatively, you might want to return an owned value help: alternatively, you might want to return an owned value
| |
LL - fn g(mut x: impl Foo<()>) -> Option<&()> { x.next() } LL - fn g(mut x: impl Foo<()>) -> Option<&()> { x.next() }

View file

@ -41,9 +41,8 @@ LL | let _ = vec![1, 2, 3].into_iter().collect::Vec<_>>();
| |
help: surround the type parameters with angle brackets help: surround the type parameters with angle brackets
| |
LL - let _ = vec![1, 2, 3].into_iter().collect::Vec<_>>(); LL | let _ = vec![1, 2, 3].into_iter().collect::<Vec<_>>();
LL + let _ = vec![1, 2, 3].into_iter().collect::<Vec<_>>(); | +
|
error: aborting due to 4 previous errors error: aborting due to 4 previous errors

Some files were not shown because too many files have changed in this diff Show more