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);
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;
if i == 0 {

View file

@ -230,6 +230,17 @@ impl SubstitutionPart {
!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 {
sm.span_to_snippet(self.span)
.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
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

View file

@ -134,9 +134,8 @@ LL | type Baz = T;
| --- required by a bound in this associated type
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

View file

@ -13,9 +13,8 @@ LL | impl<T: NotNull> IntoNullable for T {
| unsatisfied trait bound introduced here
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
--> $DIR/issue-38821.rs:40:1
@ -38,9 +37,8 @@ LL | impl<T: NotNull> IntoNullable for T {
| unsatisfied trait bound introduced here
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
--> $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`
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

View file

@ -12,9 +12,8 @@ LL | type Size: Add<Output = Self::Size>;
| ^^^^^^^^^^^^^^^^^^^ required by this bound in `Encoder::Size`
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

View file

@ -35,9 +35,8 @@ LL | x.inser();
|
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
--> $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`
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
--> $DIR/rustc_confusables_std_cases.rs:15:7
@ -98,9 +97,8 @@ note: method defined here
--> $SRC_DIR/alloc/src/string.rs:LL:COL
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
--> $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
|
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

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
|
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

View file

@ -8,9 +8,8 @@ LL | v.iter().for_each(|a| a.double());
|
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
--> $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
|
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

View file

@ -63,9 +63,8 @@ LL | self , ... , self , self , ... ) where F : FnOnce ( & 'a & 'b usize
|
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
|
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)
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

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
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`
--> $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
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`
--> $DIR/diagnotics.rs:17:7

View file

@ -108,9 +108,8 @@ LL | let PAT = v1;
= note: the matched value is of type `u32`
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

View file

@ -15,9 +15,8 @@ LL | _func: F,
|
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
|
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<_>`
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
--> $DIR/bad-self-type.rs:22:18

View file

@ -14,9 +14,8 @@ LL | [(); N + 1]:,
| ^^^^^ required by this bound in `bar`
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

View file

@ -14,9 +14,8 @@ LL | [(); N + 1]:,
| ^^^^^ required by this bound in `bar`
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

View file

@ -16,9 +16,8 @@ LL | fn assert_impl<T: Trait>() {}
| ^^^^^ required by this bound in `assert_impl`
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
--> $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`
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
--> $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`
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
--> $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`
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
--> $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
|
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

View file

@ -26,9 +26,8 @@ LL | foo::<_, L>([(); L + 1 + L]);
|
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
--> $DIR/issue_114151.rs:17:17

View file

@ -15,9 +15,8 @@ LL | foo::<_, L>([(); L + 1 + L]);
|
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

View file

@ -9,9 +9,8 @@ LL | let f: F = async { 1 };
|
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
|
LL | fn f<T, F>(

View file

@ -12,9 +12,8 @@ LL | let a = 4;
= note: the matched value is of type `u8`
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
--> $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)`
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
--> $DIR/const-pattern-irrefutable.rs:36:9
@ -71,9 +69,8 @@ LL | struct S {
= note: the matched value is of type `S`
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

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)
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`
--> $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`
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
--> $DIR/explicit-drop-bounds.rs:32:18
@ -28,9 +27,8 @@ LL | struct DropMe<T: Copy>(T);
| ^^^^ required by this bound in `DropMe`
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

View file

@ -67,9 +67,8 @@ LL | fn wants_write(_: impl Write) {}
| ^^^^^ required by this bound in `wants_write`
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

View file

@ -14,9 +14,8 @@ LL | pub struct XEmpty2;
|
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
|
LL - let e1 = Empty1;
@ -38,9 +37,8 @@ LL | pub struct XEmpty2;
|
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
|
LL - let xe1 = XEmpty1;

View file

@ -46,9 +46,8 @@ LL | XEmpty5(),
|
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
|
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
|
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
--> $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
|
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

View file

@ -51,9 +51,8 @@ LL | format_args!("{}", 0xffff_ffff); // treat unsuffixed literals as i32
= 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`
|
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

View file

@ -17,9 +17,8 @@ LL + use no_method_suggested_traits::qux::PrivPub;
|
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
--> $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
|
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
--> $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
|
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
--> $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
|
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
--> $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
|
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
--> $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
|
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
--> $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
|
LL - B;
LL + B::B1;
|
LL | B::B1;
| ~~~~~
error[E0425]: cannot find value `C` in this scope
--> $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
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
--> $DIR/import-self.rs:12:5

View file

@ -11,9 +11,8 @@ LL | Foo::Bar => {}
|
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
|
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`
|
LL - 3.f()
LL + 3_i32.f()
|
LL | 3_i32.f()
| ~~~~~
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`
|
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

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>`
|
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

View file

@ -16,9 +16,8 @@ LL + use reexported_trait::Trait;
|
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
--> $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
|
LL - let _ = foo();
LL + let _unused = foo();
|
LL | let _unused = foo();
| ~~~~~~~
help: consider immediately dropping the value
|
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
|
LL - let _ = field;
LL + let _unused = field;
|
LL | let _unused = field;
| ~~~~~~~
help: consider immediately dropping the value
|
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
|
LL - let _ = NontrivialDrop;
LL + let _unused = NontrivialDrop;
|
LL | let _unused = NontrivialDrop;
| ~~~~~~~
help: consider immediately dropping the value
|
LL - let _ = NontrivialDrop;

View file

@ -7,9 +7,8 @@ LL | let _ = data.lock().unwrap();
= note: `#[deny(let_underscore_lock)]` on by default
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
|
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
|
LL - let _ = data.lock();
LL + let _unused = data.lock();
|
LL | let _unused = data.lock();
| ~~~~~~~
help: consider immediately dropping the value
|
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 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
--> $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 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
--> $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
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
--> $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
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
--> $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
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
--> $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
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
--> $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
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
--> $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
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
--> $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
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
--> $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
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
--> $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
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
--> $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
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
--> $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
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
--> $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
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
--> $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: 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`
--> $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: 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`
--> $DIR/type-overflow.rs:46:17

View file

@ -12,9 +12,8 @@ LL | #![deny(unused)]
= note: `#[deny(unused_variables)]` implied by `#[deny(unused)]`
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`
--> $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
|
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`
--> $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
|
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
--> $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
|
LL - ($e:expr) => {
LL + ($e:expr_2021) => {
|
LL | ($e:expr_2021) => {
| ~~~~~~~~~
warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
--> $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>
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

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)
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
--> $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)
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

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`
|
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

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`
|
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}`
--> $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`
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
--> $DIR/issue-112269.rs:7:9
@ -28,9 +27,8 @@ LL | let y = 4;
= note: the matched value is of type `i32`
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

View file

@ -195,9 +195,8 @@ LL | [t, t];
| - you could clone this value
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

View file

@ -33,9 +33,8 @@ LL | with_signature(x, |mut y| Box::new(y.next()))
|
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
--> $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
|
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
--> $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
|
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
--> $DIR/projection-no-regions-fn.rs:28:5
@ -24,9 +23,8 @@ LL | Box::new(x.next())
|
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

View file

@ -34,9 +34,8 @@ LL | with_signature(cell, t, |cell, t| require(cell, t));
|
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
--> $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
|
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
--> $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
|
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

View file

@ -9,9 +9,8 @@ LL | bar::<<T as MyTrait<'a>>::Output>()
|
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

View file

@ -11,9 +11,8 @@ LL | let _hair_space_around = 'x';
| ^^
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

View file

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

View file

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

View file

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

View file

@ -121,9 +121,8 @@ LL | pub enum E1 { Z0, Z1(), S(u8, u8, u8) }
|
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
|
LL - E1::Z1 => {}

View file

@ -155,9 +155,8 @@ LL | E1::Z1 => {}
|
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
|
LL - E1::Z1 => {}

View file

@ -6,9 +6,8 @@ LL | b.make_ascii_uppercase();
|
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

View file

@ -6,9 +6,8 @@ LL | mutate(&mut x);
|
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

View file

@ -52,9 +52,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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
--> $DIR/privacy5.rs:56:12
@ -262,9 +261,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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
--> $DIR/privacy5.rs:69:12
@ -282,9 +280,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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
--> $DIR/privacy5.rs:70:12
@ -302,9 +299,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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
--> $DIR/privacy5.rs:71:12
@ -322,9 +318,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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
--> $DIR/privacy5.rs:72:18
@ -342,9 +337,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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
--> $DIR/privacy5.rs:73:18
@ -362,9 +356,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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
--> $DIR/privacy5.rs:74:18
@ -382,9 +375,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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
--> $DIR/privacy5.rs:75:18
@ -402,9 +394,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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
--> $DIR/privacy5.rs:83:17
@ -460,9 +451,8 @@ LL | pub struct C(pub isize, isize);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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
--> $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
|
LL - pub S (foo) bar
LL + pub S! (foo) bar
|
LL | pub S! (foo) bar
| ~~
error: aborting due to 1 previous error

View file

@ -9,9 +9,8 @@ LL | handle: Handle
|
help: use struct literal syntax instead
|
LL - handle: Handle
LL + handle: Handle {}
|
LL | handle: Handle {}
| ~~~~~~~~~
help: a local variable with a similar name exists
|
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`
|
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
|
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::Tuple()).foo();
|
LL - A.foo();
LL + A::Unit.foo();
|
LL | A::Unit.foo();
| ~~~~~~~
help: alternatively, the following enum variant is available
|
LL - A.foo();
@ -61,9 +60,8 @@ LL | | }
| |_^
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
|
LL - C.foo();
@ -86,9 +84,8 @@ LL | | }
| |_^
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
|
LL - D.foo();
@ -144,12 +141,10 @@ LL | | }
| |_^
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(3) = x { }
LL + if let A::TupleWithFields(3) = x { }
|
LL | if let A::Tuple(3) = x { }
| ~~~~~~~~
LL | if let A::TupleWithFields(3) = x { }
| ~~~~~~~~~~~~~~~~~~
error[E0423]: expected function, tuple struct or tuple variant, found enum `A`
--> $DIR/issue-73427.rs:46:13
@ -171,12 +166,10 @@ LL | | }
| |_^
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(3);
LL + let x = A::TupleWithFields(3);
|
LL | let x = A::Tuple(3);
| ~~~~~~~~
LL | let x = A::TupleWithFields(3);
| ~~~~~~~~~~~~~~~~~~
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
|
LL - let _: E = E;
LL + let _: E = E::Unit;
|
LL | let _: E = E::Unit;
| ~~~~~~~
help: alternatively, the following enum variant is available
|
LL - let _: E = E;

View file

@ -11,9 +11,8 @@ LL | const DEFAULT: u32 = 0;
= note: the matched value is of type `u32`
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

View file

@ -21,9 +21,8 @@ LL | const DEFAULT: u32 = 0;
= note: the matched value is of type `u32`
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

View file

@ -66,9 +66,8 @@ LL | Self::BAR;
| ++++++
help: a constant with a similar name exists
|
LL - BAR;
LL + BARR;
|
LL | BARR;
| ~~~~
error[E0412]: cannot find type `Baz` in this scope
--> $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
|
LL - modul::foo();
LL + module::foo();
|
LL | module::foo();
| ~~~~~~
error[E0433]: failed to resolve: use of undeclared type `Trai`
--> $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`
|
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
|
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`
|
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
|
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`
|
LL - #![feature(foo)]
LL + #![feature(foobar)]
|
LL | #![feature(foobar)]
| ~~~~~~
help: if you are using features which are now stable, remove this line
|
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`
|
LL - #![feature(foo)]
LL + #![feature(foobar)]
|
LL | #![feature(foobar)]
| ~~~~~~
help: if you are using features which are now stable, remove this line
|
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
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

View file

@ -9,9 +9,8 @@ LL | let _ = unsafe { (&TEST) as *const usize };
= note: `#[warn(static_mut_refs)]` on by default
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
--> $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
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
--> $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
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
--> $DIR/static-recursive.rs:19:20

View file

@ -6,9 +6,8 @@ LL | bar : 42,
|
help: a field with a similar name exists
|
LL - bar : 42,
LL + barr : 42,
|
LL | barr : 42,
| ~~~~
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)
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`
--> $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`
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

View file

@ -6,9 +6,8 @@ LL | use st::cell::Cell;
|
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`
--> $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
|
LL - bar: st::cell::Cell<bool>
LL + bar: std::cell::Cell<bool>
|
LL | bar: std::cell::Cell<bool>
| ~~~
help: consider importing this module
|
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
|
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`
|
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`
|
LL - if let B::Fst = a {};
LL + if let B::Fst = a.b {};
|
LL | if let B::Fst = a.b {};
| ~~~
error[E0308]: mismatched types
--> $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`
|
LL - match a {
LL + match a.b {
|
LL | match a.b {
| ~~~
error[E0308]: mismatched types
--> $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`
|
LL - match a {
LL + match a.b {
|
LL | match a.b {
| ~~~
error[E0308]: mismatched types
--> $DIR/field-access.rs:32:9

View file

@ -14,9 +14,8 @@ LL | fn foo<X: Trait>(_: X) {}
| ^^^^^ required by this bound in `foo`
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
--> $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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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

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