summaryrefslogtreecommitdiffstats
path: root/tests/ui/suggestions
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/suggestions')
-rw-r--r--tests/ui/suggestions/abi-typo.stderr2
-rw-r--r--tests/ui/suggestions/as-ref-2.stderr11
-rw-r--r--tests/ui/suggestions/as-ref.stderr12
-rw-r--r--tests/ui/suggestions/assoc-const-as-field.stderr2
-rw-r--r--tests/ui/suggestions/assoc-const-as-fn.stderr2
-rw-r--r--tests/ui/suggestions/assoc-const-without-self.stderr2
-rw-r--r--tests/ui/suggestions/assoc-type-in-method-return.stderr2
-rw-r--r--tests/ui/suggestions/bad-infer-in-trait-impl.stderr2
-rw-r--r--tests/ui/suggestions/box-future-wrong-output.stderr2
-rw-r--r--tests/ui/suggestions/boxed-variant-field.stderr2
-rw-r--r--tests/ui/suggestions/call-boxed.stderr2
-rw-r--r--tests/ui/suggestions/call-on-missing.stderr4
-rw-r--r--tests/ui/suggestions/call-on-unimplemented-ctor.stderr2
-rw-r--r--tests/ui/suggestions/call-on-unimplemented-fn-ptr.stderr2
-rw-r--r--tests/ui/suggestions/call-on-unimplemented-with-autoderef.stderr2
-rw-r--r--tests/ui/suggestions/clone-on-unconstrained-borrowed-type-param.stderr4
-rw-r--r--tests/ui/suggestions/const-in-struct-pat.stderr2
-rw-r--r--tests/ui/suggestions/const-pat-non-exaustive-let-new-var.stderr2
-rw-r--r--tests/ui/suggestions/constrain-suggest-ice.stderr2
-rw-r--r--tests/ui/suggestions/core-std-import-order-issue-83564.stderr2
-rw-r--r--tests/ui/suggestions/correct-binder-for-arbitrary-bound-sugg.stderr2
-rw-r--r--tests/ui/suggestions/crate-or-module-typo.rs2
-rw-r--r--tests/ui/suggestions/crate-or-module-typo.stderr4
-rw-r--r--tests/ui/suggestions/deref-path-method.stderr2
-rw-r--r--tests/ui/suggestions/derive-clone-for-eq.fixed2
-rw-r--r--tests/ui/suggestions/derive-clone-for-eq.rs2
-rw-r--r--tests/ui/suggestions/derive-clone-for-eq.stderr6
-rw-r--r--tests/ui/suggestions/dont-suggest-deref-inside-macro-issue-58298.stderr2
-rw-r--r--tests/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-child.stderr2
-rw-r--r--tests/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-parent.stderr2
-rw-r--r--tests/ui/suggestions/dont-suggest-pin-array-dot-set.stderr2
-rw-r--r--tests/ui/suggestions/dont-suggest-try_into-in-macros.stderr2
-rw-r--r--tests/ui/suggestions/dont-suggest-ufcs-for-const.stderr2
-rw-r--r--tests/ui/suggestions/dont-wrap-ambiguous-receivers.stderr2
-rw-r--r--tests/ui/suggestions/enum-variant-arg-mismatch.stderr6
-rw-r--r--tests/ui/suggestions/field-access-considering-privacy.stderr2
-rw-r--r--tests/ui/suggestions/field-has-method.stderr2
-rw-r--r--tests/ui/suggestions/fn-needing-specified-return-type-param.stderr2
-rw-r--r--tests/ui/suggestions/imm-ref-trait-object-literal-bound-regions.stderr2
-rw-r--r--tests/ui/suggestions/imm-ref-trait-object.stderr2
-rw-r--r--tests/ui/suggestions/impl-trait-missing-lifetime-gated.stderr66
-rw-r--r--tests/ui/suggestions/impl-trait-missing-lifetime.stderr22
-rw-r--r--tests/ui/suggestions/impl-trait-with-missing-trait-bounds-in-arg.stderr2
-rw-r--r--tests/ui/suggestions/import-trait-for-method-call.rs2
-rw-r--r--tests/ui/suggestions/into-str.stderr2
-rw-r--r--tests/ui/suggestions/invalid-bin-op.stderr6
-rw-r--r--tests/ui/suggestions/issue-101065.stderr2
-rw-r--r--tests/ui/suggestions/issue-101421.stderr2
-rw-r--r--tests/ui/suggestions/issue-101465.stderr2
-rw-r--r--tests/ui/suggestions/issue-101623.stderr2
-rw-r--r--tests/ui/suggestions/issue-101984.stderr2
-rw-r--r--tests/ui/suggestions/issue-102354.stderr2
-rw-r--r--tests/ui/suggestions/issue-103112.stderr2
-rw-r--r--tests/ui/suggestions/issue-103646.stderr2
-rw-r--r--tests/ui/suggestions/issue-104327.stderr2
-rw-r--r--tests/ui/suggestions/issue-104328.stderr2
-rw-r--r--tests/ui/suggestions/issue-105645.stderr2
-rw-r--r--tests/ui/suggestions/issue-107860.stderr2
-rw-r--r--tests/ui/suggestions/issue-109291.stderr2
-rw-r--r--tests/ui/suggestions/issue-109436.stderr2
-rw-r--r--tests/ui/suggestions/issue-109854.stderr2
-rw-r--r--tests/ui/suggestions/issue-114701.stderr2
-rw-r--r--tests/ui/suggestions/issue-117669.rs4
-rw-r--r--tests/ui/suggestions/issue-117669.stderr18
-rw-r--r--tests/ui/suggestions/issue-51055-missing-semicolon-between-call-and-tuple.stderr2
-rw-r--r--tests/ui/suggestions/issue-61226.stderr2
-rw-r--r--tests/ui/suggestions/issue-62843.stderr2
-rw-r--r--tests/ui/suggestions/issue-66968-suggest-sorted-words.stderr2
-rw-r--r--tests/ui/suggestions/issue-68049-1.stderr2
-rw-r--r--tests/ui/suggestions/issue-71394-no-from-impl.stderr4
-rw-r--r--tests/ui/suggestions/issue-72766.stderr2
-rw-r--r--tests/ui/suggestions/issue-81839.stderr2
-rw-r--r--tests/ui/suggestions/issue-83892.stderr2
-rw-r--r--tests/ui/suggestions/issue-83943.stderr2
-rw-r--r--tests/ui/suggestions/issue-84592.stderr2
-rw-r--r--tests/ui/suggestions/issue-84973-2.stderr2
-rw-r--r--tests/ui/suggestions/issue-84973.stderr2
-rw-r--r--tests/ui/suggestions/issue-85943-no-suggest-unsized-indirection-in-where-clause.stderr2
-rw-r--r--tests/ui/suggestions/issue-85945-check-where-clause-before-suggesting-unsized.stderr2
-rw-r--r--tests/ui/suggestions/issue-88696.stderr2
-rw-r--r--tests/ui/suggestions/issue-89333.stderr2
-rw-r--r--tests/ui/suggestions/issue-89640.stderr2
-rw-r--r--tests/ui/suggestions/issue-90213-expected-boxfuture-self-ice.stderr2
-rw-r--r--tests/ui/suggestions/issue-90974.stderr2
-rw-r--r--tests/ui/suggestions/issue-96223.stderr2
-rw-r--r--tests/ui/suggestions/issue-97677.stderr2
-rw-r--r--tests/ui/suggestions/issue-97704.stderr2
-rw-r--r--tests/ui/suggestions/issue-97760.stderr2
-rw-r--r--tests/ui/suggestions/issue-98500.stderr2
-rw-r--r--tests/ui/suggestions/issue-98562.stderr2
-rw-r--r--tests/ui/suggestions/issue-99080.stderr2
-rw-r--r--tests/ui/suggestions/issue-99240-2.stderr2
-rw-r--r--tests/ui/suggestions/issue-99240.stderr2
-rw-r--r--tests/ui/suggestions/issue-99597.stderr2
-rw-r--r--tests/ui/suggestions/js-style-comparison-op-separate-eq-token.stderr2
-rw-r--r--tests/ui/suggestions/late-bound-in-borrow-closure-sugg.stderr6
-rw-r--r--tests/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.stderr2
-rw-r--r--tests/ui/suggestions/lifetimes/missing-lifetimes-in-signature-before-const.stderr2
-rw-r--r--tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.fixed11
-rw-r--r--tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.rs11
-rw-r--r--tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.stderr15
-rw-r--r--tests/ui/suggestions/many-type-ascription.stderr2
-rw-r--r--tests/ui/suggestions/method-access-to-range-literal-typo.stderr4
-rw-r--r--tests/ui/suggestions/mismatched-types-numeric-from.stderr2
-rw-r--r--tests/ui/suggestions/missing-assoc-fn-applicable-suggestions.stderr2
-rw-r--r--tests/ui/suggestions/missing-bound-in-derive-copy-impl-2.stderr2
-rw-r--r--tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.stderr2
-rw-r--r--tests/ui/suggestions/missing-bound-in-derive-copy-impl.stderr2
-rw-r--r--tests/ui/suggestions/missing-bound-in-manual-copy-impl-2.stderr2
-rw-r--r--tests/ui/suggestions/missing-bound-in-manual-copy-impl.stderr2
-rw-r--r--tests/ui/suggestions/missing-lifetime-specifier.stderr10
-rw-r--r--tests/ui/suggestions/missing-type-param-used-in-param.stderr2
-rw-r--r--tests/ui/suggestions/move-generic-to-trait-in-method-with-params.stderr2
-rw-r--r--tests/ui/suggestions/multiline-multipart-suggestion.rs19
-rw-r--r--tests/ui/suggestions/multiline-multipart-suggestion.stderr46
-rw-r--r--tests/ui/suggestions/mut-ref-reassignment.stderr4
-rw-r--r--tests/ui/suggestions/no-extern-crate-in-type.stderr2
-rw-r--r--tests/ui/suggestions/non-existent-field-present-in-subfield-recursion-limit.stderr2
-rw-r--r--tests/ui/suggestions/non-existent-field-present-in-subfield.stderr2
-rw-r--r--tests/ui/suggestions/non_ascii_ident.rs7
-rw-r--r--tests/ui/suggestions/non_ascii_ident.stderr15
-rw-r--r--tests/ui/suggestions/opaque-type-error.stderr2
-rw-r--r--tests/ui/suggestions/option-content-move-from-tuple-match.stderr2
-rw-r--r--tests/ui/suggestions/option-content-move.fixed38
-rw-r--r--tests/ui/suggestions/option-content-move.rs1
-rw-r--r--tests/ui/suggestions/option-content-move.stderr12
-rw-r--r--tests/ui/suggestions/option-content-move2.stderr2
-rw-r--r--tests/ui/suggestions/option-to-bool.stderr2
-rw-r--r--tests/ui/suggestions/parenthesized-deref-suggestion.stderr5
-rw-r--r--tests/ui/suggestions/path-by-value.stderr2
-rw-r--r--tests/ui/suggestions/private-field.stderr4
-rw-r--r--tests/ui/suggestions/range-index-instead-of-colon.rs7
-rw-r--r--tests/ui/suggestions/range-index-instead-of-colon.stderr13
-rw-r--r--tests/ui/suggestions/remove-question-symbol-with-paren.stderr2
-rw-r--r--tests/ui/suggestions/restrict-type-not-param.stderr2
-rw-r--r--tests/ui/suggestions/return-cycle-2.stderr2
-rw-r--r--tests/ui/suggestions/return-cycle.stderr2
-rw-r--r--tests/ui/suggestions/return-elided-lifetime.stderr22
-rw-r--r--tests/ui/suggestions/shadowed-lplace-method-2.stderr2
-rw-r--r--tests/ui/suggestions/shadowed-lplace-method.stderr2
-rw-r--r--tests/ui/suggestions/silenced-binding-typo.stderr2
-rw-r--r--tests/ui/suggestions/sugg-else-for-closure.stderr2
-rw-r--r--tests/ui/suggestions/sugg_with_positional_args_and_debug_fmt.stderr2
-rw-r--r--tests/ui/suggestions/suggest-assoc-fn-call-deref.stderr2
-rw-r--r--tests/ui/suggestions/suggest-assoc-fn-call-with-turbofish-placeholder.stderr2
-rw-r--r--tests/ui/suggestions/suggest-assoc-fn-call-with-turbofish-through-deref.stderr2
-rw-r--r--tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.fixed30
-rw-r--r--tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.rs30
-rw-r--r--tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.stderr79
-rw-r--r--tests/ui/suggestions/suggest-box.stderr2
-rw-r--r--tests/ui/suggestions/suggest-closure-return-type-1.stderr2
-rw-r--r--tests/ui/suggestions/suggest-closure-return-type-2.stderr2
-rw-r--r--tests/ui/suggestions/suggest-closure-return-type-3.stderr2
-rw-r--r--tests/ui/suggestions/suggest-dereferencing-index.stderr4
-rw-r--r--tests/ui/suggestions/suggest-field-through-deref.fixed21
-rw-r--r--tests/ui/suggestions/suggest-field-through-deref.rs21
-rw-r--r--tests/ui/suggestions/suggest-field-through-deref.stderr69
-rw-r--r--tests/ui/suggestions/suggest-fn-ptr-for-fn-item-in-fn-ret.stderr2
-rw-r--r--tests/ui/suggestions/suggest-full-enum-variant-for-local-module.stderr2
-rw-r--r--tests/ui/suggestions/suggest-impl-trait-lifetime.stderr2
-rw-r--r--tests/ui/suggestions/suggest-let-for-assignment.fixed6
-rw-r--r--tests/ui/suggestions/suggest-let-for-assignment.rs6
-rw-r--r--tests/ui/suggestions/suggest-let-for-assignment.stderr42
-rw-r--r--tests/ui/suggestions/suggest-mut-method-for-loop-closure.stderr2
-rw-r--r--tests/ui/suggestions/suggest-mut-method-for-loop-hashmap.stderr2
-rw-r--r--tests/ui/suggestions/suggest-mut-method-for-loop.stderr2
-rw-r--r--tests/ui/suggestions/suggest-pin-macro.stderr2
-rw-r--r--tests/ui/suggestions/suggest-remove-refs-1.stderr2
-rw-r--r--tests/ui/suggestions/suggest-remove-refs-2.stderr2
-rw-r--r--tests/ui/suggestions/suggest-remove-refs-3.stderr2
-rw-r--r--tests/ui/suggestions/suggest-remove-refs-4.stderr2
-rw-r--r--tests/ui/suggestions/suggest-ret-on-async-w-late.stderr2
-rw-r--r--tests/ui/suggestions/suggest-semicolon-for-fn-in-extern-block.stderr2
-rw-r--r--tests/ui/suggestions/suggest-split-at-mut.stderr2
-rw-r--r--tests/ui/suggestions/suggest-trait-in-ufcs-in-hrtb.stderr2
-rw-r--r--tests/ui/suggestions/suggest-tryinto-edition-change.stderr6
-rw-r--r--tests/ui/suggestions/suggest_print_over_printf.stderr2
-rw-r--r--tests/ui/suggestions/too-many-field-suggestions.stderr1
-rw-r--r--tests/ui/suggestions/type-ascription-and-other-error.stderr2
-rw-r--r--tests/ui/suggestions/type-ascription-instead-of-let.stderr2
-rw-r--r--tests/ui/suggestions/type-ascription-instead-of-method.stderr2
-rw-r--r--tests/ui/suggestions/type-ascription-instead-of-path-2.stderr2
-rw-r--r--tests/ui/suggestions/type-ascription-instead-of-path.stderr2
-rw-r--r--tests/ui/suggestions/type-ascription-instead-of-variant.stderr2
-rw-r--r--tests/ui/suggestions/type-mismatch-struct-field-shorthand-2.stderr7
-rw-r--r--tests/ui/suggestions/undeclared-module-alloc.stderr2
-rw-r--r--tests/ui/suggestions/use-placement-resolve.stderr2
-rw-r--r--tests/ui/suggestions/use-placement-typeck.stderr2
188 files changed, 748 insertions, 277 deletions
diff --git a/tests/ui/suggestions/abi-typo.stderr b/tests/ui/suggestions/abi-typo.stderr
index 67a84f119..ea474e321 100644
--- a/tests/ui/suggestions/abi-typo.stderr
+++ b/tests/ui/suggestions/abi-typo.stderr
@@ -9,6 +9,6 @@ LL | extern "cdedl" fn cdedl() {}
|
= note: invoke `rustc --print=calling-conventions` for a full list of supported calling conventions.
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0703`.
diff --git a/tests/ui/suggestions/as-ref-2.stderr b/tests/ui/suggestions/as-ref-2.stderr
index e2129b450..309285775 100644
--- a/tests/ui/suggestions/as-ref-2.stderr
+++ b/tests/ui/suggestions/as-ref-2.stderr
@@ -12,7 +12,16 @@ LL | let _y = foo;
|
note: `Option::<T>::map` takes ownership of the receiver `self`, which moves `foo`
--> $SRC_DIR/core/src/option.rs:LL:COL
+help: you could `clone` the value and consume it, if the `Struct: Clone` trait bound could be satisfied
+ |
+LL | let _x: Option<Struct> = foo.clone().map(|s| bar(&s));
+ | ++++++++
+help: consider annotating `Struct` with `#[derive(Clone)]`
+ |
+LL + #[derive(Clone)]
+LL | struct Struct;
+ |
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0382`.
diff --git a/tests/ui/suggestions/as-ref.stderr b/tests/ui/suggestions/as-ref.stderr
index c5b2bb126..a42e2af31 100644
--- a/tests/ui/suggestions/as-ref.stderr
+++ b/tests/ui/suggestions/as-ref.stderr
@@ -78,8 +78,8 @@ LL | let y: Option<&usize> = x;
| |
| expected due to this
|
- = note: expected enum `Option<&usize>`
- found reference `&Option<usize>`
+ = note: expected enum `Option<&_>`
+ found reference `&Option<_>`
help: try using `.as_ref()` to convert `&Option<usize>` to `Option<&usize>`
|
LL | let y: Option<&usize> = x.as_ref();
@@ -93,8 +93,8 @@ LL | let y: Result<&usize, &usize> = x;
| |
| expected due to this
|
- = note: expected enum `Result<&usize, &usize>`
- found reference `&Result<usize, usize>`
+ = note: expected enum `Result<&_, &_>`
+ found reference `&Result<_, _>`
help: try using `.as_ref()` to convert `&Result<usize, usize>` to `Result<&usize, &usize>`
|
LL | let y: Result<&usize, &usize> = x.as_ref();
@@ -108,8 +108,8 @@ LL | let y: Result<&usize, usize> = x;
| |
| expected due to this
|
- = note: expected enum `Result<&usize, usize>`
- found reference `&Result<usize, usize>`
+ = note: expected enum `Result<&_, _>`
+ found reference `&Result<_, _>`
error[E0308]: mismatched types
--> $DIR/as-ref.rs:22:42
diff --git a/tests/ui/suggestions/assoc-const-as-field.stderr b/tests/ui/suggestions/assoc-const-as-field.stderr
index 78e5634b2..0f58ce650 100644
--- a/tests/ui/suggestions/assoc-const-as-field.stderr
+++ b/tests/ui/suggestions/assoc-const-as-field.stderr
@@ -4,6 +4,6 @@ error[E0423]: expected value, found struct `Mod::Foo`
LL | foo(Mod::Foo.Bar);
| ^^^^^^^^- help: use the path separator to refer to an item: `::`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0423`.
diff --git a/tests/ui/suggestions/assoc-const-as-fn.stderr b/tests/ui/suggestions/assoc-const-as-fn.stderr
index d55d968b6..69e9af726 100644
--- a/tests/ui/suggestions/assoc-const-as-fn.stderr
+++ b/tests/ui/suggestions/assoc-const-as-fn.stderr
@@ -9,6 +9,6 @@ help: consider further restricting this bound
LL | pub fn foo<T: UniformScalar + GlUniformScalar>(value: T) {
| +++++++++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/assoc-const-without-self.stderr b/tests/ui/suggestions/assoc-const-without-self.stderr
index 05528d277..5a9fba8a0 100644
--- a/tests/ui/suggestions/assoc-const-without-self.stderr
+++ b/tests/ui/suggestions/assoc-const-without-self.stderr
@@ -9,6 +9,6 @@ help: consider using the associated constant on `Self`
LL | Self::A_CONST
| ++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0425`.
diff --git a/tests/ui/suggestions/assoc-type-in-method-return.stderr b/tests/ui/suggestions/assoc-type-in-method-return.stderr
index df3828ad4..f83da7909 100644
--- a/tests/ui/suggestions/assoc-type-in-method-return.stderr
+++ b/tests/ui/suggestions/assoc-type-in-method-return.stderr
@@ -9,6 +9,6 @@ help: you might have meant to use the associated type
LL | fn to_bla(&self) -> Self::Bla;
| ++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0412`.
diff --git a/tests/ui/suggestions/bad-infer-in-trait-impl.stderr b/tests/ui/suggestions/bad-infer-in-trait-impl.stderr
index 418690ff8..d96ee33a9 100644
--- a/tests/ui/suggestions/bad-infer-in-trait-impl.stderr
+++ b/tests/ui/suggestions/bad-infer-in-trait-impl.stderr
@@ -9,6 +9,6 @@ help: use type parameters instead
LL | fn bar<T>(s: T) {}
| +++ ~
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0121`.
diff --git a/tests/ui/suggestions/box-future-wrong-output.stderr b/tests/ui/suggestions/box-future-wrong-output.stderr
index e0c57af25..6a232c344 100644
--- a/tests/ui/suggestions/box-future-wrong-output.stderr
+++ b/tests/ui/suggestions/box-future-wrong-output.stderr
@@ -9,6 +9,6 @@ LL | let _: BoxFuture<'static, bool> = async {}.boxed();
= note: expected struct `Pin<Box<(dyn Future<Output = bool> + Send + 'static)>>`
found struct `Pin<Box<dyn Future<Output = ()> + Send>>`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/boxed-variant-field.stderr b/tests/ui/suggestions/boxed-variant-field.stderr
index 1adbc0540..c5fe9630b 100644
--- a/tests/ui/suggestions/boxed-variant-field.stderr
+++ b/tests/ui/suggestions/boxed-variant-field.stderr
@@ -18,6 +18,6 @@ help: consider unboxing the value
LL | Ty::List(elem) => foo(*elem),
| +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/call-boxed.stderr b/tests/ui/suggestions/call-boxed.stderr
index 11823ff09..08fa1a698 100644
--- a/tests/ui/suggestions/call-boxed.stderr
+++ b/tests/ui/suggestions/call-boxed.stderr
@@ -15,6 +15,6 @@ help: use parentheses to call this closure
LL | x = y();
| ++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/call-on-missing.stderr b/tests/ui/suggestions/call-on-missing.stderr
index ca9abc7e9..1bab075dc 100644
--- a/tests/ui/suggestions/call-on-missing.stderr
+++ b/tests/ui/suggestions/call-on-missing.stderr
@@ -13,7 +13,7 @@ error[E0609]: no field `i` on type `fn() -> Foo {foo}`
--> $DIR/call-on-missing.rs:16:9
|
LL | foo.i;
- | ^
+ | ^ unknown field
|
help: use parentheses to call this function
|
@@ -62,7 +62,7 @@ LL | fn type_param<T: Fn() -> Foo>(t: T) {
| - type parameter 'T' declared here
...
LL | t.i;
- | ^
+ | ^ unknown field
|
help: use parentheses to call this type parameter
|
diff --git a/tests/ui/suggestions/call-on-unimplemented-ctor.stderr b/tests/ui/suggestions/call-on-unimplemented-ctor.stderr
index 58612cbfb..4124a0061 100644
--- a/tests/ui/suggestions/call-on-unimplemented-ctor.stderr
+++ b/tests/ui/suggestions/call-on-unimplemented-ctor.stderr
@@ -16,6 +16,6 @@ help: use parentheses to construct this tuple struct
LL | insert_resource(Time(/* u32 */));
| +++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/call-on-unimplemented-fn-ptr.stderr b/tests/ui/suggestions/call-on-unimplemented-fn-ptr.stderr
index 167f7e592..f20596a80 100644
--- a/tests/ui/suggestions/call-on-unimplemented-fn-ptr.stderr
+++ b/tests/ui/suggestions/call-on-unimplemented-fn-ptr.stderr
@@ -16,6 +16,6 @@ help: use parentheses to call this function pointer
LL | needs_bar(f());
| ++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/call-on-unimplemented-with-autoderef.stderr b/tests/ui/suggestions/call-on-unimplemented-with-autoderef.stderr
index 90f44cce0..f804c66aa 100644
--- a/tests/ui/suggestions/call-on-unimplemented-with-autoderef.stderr
+++ b/tests/ui/suggestions/call-on-unimplemented-with-autoderef.stderr
@@ -16,6 +16,6 @@ help: use parentheses to call this trait object
LL | needs_foo(x());
| ++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/clone-on-unconstrained-borrowed-type-param.stderr b/tests/ui/suggestions/clone-on-unconstrained-borrowed-type-param.stderr
index 8c973995c..afbb9c32d 100644
--- a/tests/ui/suggestions/clone-on-unconstrained-borrowed-type-param.stderr
+++ b/tests/ui/suggestions/clone-on-unconstrained-borrowed-type-param.stderr
@@ -8,8 +8,8 @@ LL | fn wat<T>(t: &T) -> T {
LL | t.clone()
| ^^^^^^^^^ expected type parameter `T`, found `&T`
|
- = note: expected type parameter `T`
- found reference `&T`
+ = note: expected type parameter `_`
+ found reference `&_`
note: `T` does not implement `Clone`, so `&T` was cloned instead
--> $DIR/clone-on-unconstrained-borrowed-type-param.rs:3:5
|
diff --git a/tests/ui/suggestions/const-in-struct-pat.stderr b/tests/ui/suggestions/const-in-struct-pat.stderr
index f344ac06d..d4056e09c 100644
--- a/tests/ui/suggestions/const-in-struct-pat.stderr
+++ b/tests/ui/suggestions/const-in-struct-pat.stderr
@@ -15,6 +15,6 @@ help: bind the struct field to a different name instead
LL | let Thing { foo: other_foo } = t;
| +++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/const-pat-non-exaustive-let-new-var.stderr b/tests/ui/suggestions/const-pat-non-exaustive-let-new-var.stderr
index 9ee3e6eb2..b6c286128 100644
--- a/tests/ui/suggestions/const-pat-non-exaustive-let-new-var.stderr
+++ b/tests/ui/suggestions/const-pat-non-exaustive-let-new-var.stderr
@@ -12,6 +12,6 @@ LL | let A = 3;
= note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
= note: the matched value is of type `i32`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0005`.
diff --git a/tests/ui/suggestions/constrain-suggest-ice.stderr b/tests/ui/suggestions/constrain-suggest-ice.stderr
index 9b92091de..96f1f8605 100644
--- a/tests/ui/suggestions/constrain-suggest-ice.stderr
+++ b/tests/ui/suggestions/constrain-suggest-ice.stderr
@@ -9,5 +9,5 @@ LL | A: [(); {
LL | }
| ^ mismatched closing delimiter
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/core-std-import-order-issue-83564.stderr b/tests/ui/suggestions/core-std-import-order-issue-83564.stderr
index 48ee44a74..c2634e307 100644
--- a/tests/ui/suggestions/core-std-import-order-issue-83564.stderr
+++ b/tests/ui/suggestions/core-std-import-order-issue-83564.stderr
@@ -11,6 +11,6 @@ LL + use core::num::NonZeroU32;
LL + use std::num::NonZeroU32;
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0433`.
diff --git a/tests/ui/suggestions/correct-binder-for-arbitrary-bound-sugg.stderr b/tests/ui/suggestions/correct-binder-for-arbitrary-bound-sugg.stderr
index 2298e7f4e..2cd3fba87 100644
--- a/tests/ui/suggestions/correct-binder-for-arbitrary-bound-sugg.stderr
+++ b/tests/ui/suggestions/correct-binder-for-arbitrary-bound-sugg.stderr
@@ -17,6 +17,6 @@ help: consider introducing a `where` clause, but there might be an alternative b
LL | fn foo<T: Foo>() where for<'a> &'a T: Bar {}
| ++++++++++++++++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/crate-or-module-typo.rs b/tests/ui/suggestions/crate-or-module-typo.rs
index 2471b11c6..b12ad495e 100644
--- a/tests/ui/suggestions/crate-or-module-typo.rs
+++ b/tests/ui/suggestions/crate-or-module-typo.rs
@@ -3,7 +3,7 @@
use st::cell::Cell; //~ ERROR failed to resolve: use of undeclared crate or module `st`
mod bar {
- pub fn bar() { bar::baz(); } //~ ERROR failed to resolve: use of undeclared crate or module `bar`
+ pub fn bar() { bar::baz(); } //~ ERROR failed to resolve: function `bar` is not a crate or module
fn baz() {}
}
diff --git a/tests/ui/suggestions/crate-or-module-typo.stderr b/tests/ui/suggestions/crate-or-module-typo.stderr
index 9ece31e76..457d77906 100644
--- a/tests/ui/suggestions/crate-or-module-typo.stderr
+++ b/tests/ui/suggestions/crate-or-module-typo.stderr
@@ -42,11 +42,11 @@ LL - bar: st::cell::Cell<bool>
LL + bar: cell::Cell<bool>
|
-error[E0433]: failed to resolve: use of undeclared crate or module `bar`
+error[E0433]: failed to resolve: function `bar` is not a crate or module
--> $DIR/crate-or-module-typo.rs:6:20
|
LL | pub fn bar() { bar::baz(); }
- | ^^^ use of undeclared crate or module `bar`
+ | ^^^ function `bar` is not a crate or module
error: aborting due to 4 previous errors
diff --git a/tests/ui/suggestions/deref-path-method.stderr b/tests/ui/suggestions/deref-path-method.stderr
index 0372a7e6c..a2b68fa96 100644
--- a/tests/ui/suggestions/deref-path-method.stderr
+++ b/tests/ui/suggestions/deref-path-method.stderr
@@ -16,6 +16,6 @@ help: the function `contains` is implemented on `[_]`
LL | <[_]>::contains(&vec, &0);
| ~~~~~
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/derive-clone-for-eq.fixed b/tests/ui/suggestions/derive-clone-for-eq.fixed
index f07784d53..a74487019 100644
--- a/tests/ui/suggestions/derive-clone-for-eq.fixed
+++ b/tests/ui/suggestions/derive-clone-for-eq.fixed
@@ -1,8 +1,6 @@
// run-rustfix
// https://github.com/rust-lang/rust/issues/79076
-use std::cmp::PartialEq;
-
#[derive(Clone, Eq)] //~ ERROR [E0277]
pub struct Struct<T: std::clone::Clone>(T);
diff --git a/tests/ui/suggestions/derive-clone-for-eq.rs b/tests/ui/suggestions/derive-clone-for-eq.rs
index 15c0d4659..99956ed98 100644
--- a/tests/ui/suggestions/derive-clone-for-eq.rs
+++ b/tests/ui/suggestions/derive-clone-for-eq.rs
@@ -1,8 +1,6 @@
// run-rustfix
// https://github.com/rust-lang/rust/issues/79076
-use std::cmp::PartialEq;
-
#[derive(Clone, Eq)] //~ ERROR [E0277]
pub struct Struct<T>(T);
diff --git a/tests/ui/suggestions/derive-clone-for-eq.stderr b/tests/ui/suggestions/derive-clone-for-eq.stderr
index 9d843c251..680890e88 100644
--- a/tests/ui/suggestions/derive-clone-for-eq.stderr
+++ b/tests/ui/suggestions/derive-clone-for-eq.stderr
@@ -1,11 +1,11 @@
error[E0277]: the trait bound `T: Clone` is not satisfied
- --> $DIR/derive-clone-for-eq.rs:6:17
+ --> $DIR/derive-clone-for-eq.rs:4:17
|
LL | #[derive(Clone, Eq)]
| ^^ the trait `Clone` is not implemented for `T`
|
note: required for `Struct<T>` to implement `PartialEq`
- --> $DIR/derive-clone-for-eq.rs:9:19
+ --> $DIR/derive-clone-for-eq.rs:7:19
|
LL | impl<T: Clone, U> PartialEq<U> for Struct<T>
| ----- ^^^^^^^^^^^^ ^^^^^^^^^
@@ -19,6 +19,6 @@ help: consider restricting type parameter `T`
LL | pub struct Struct<T: std::clone::Clone>(T);
| +++++++++++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/dont-suggest-deref-inside-macro-issue-58298.stderr b/tests/ui/suggestions/dont-suggest-deref-inside-macro-issue-58298.stderr
index c6867270a..46613e8e1 100644
--- a/tests/ui/suggestions/dont-suggest-deref-inside-macro-issue-58298.stderr
+++ b/tests/ui/suggestions/dont-suggest-deref-inside-macro-issue-58298.stderr
@@ -8,6 +8,6 @@ LL | | };
|
= note: this error originates in the macro `format` which comes from the expansion of the macro `intrinsic_match` (in Nightly builds, run with -Z macro-backtrace for more info)
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-child.stderr b/tests/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-child.stderr
index 866d3fab4..00d001f6b 100644
--- a/tests/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-child.stderr
+++ b/tests/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-child.stderr
@@ -13,6 +13,6 @@ help: try wrapping the expression in `hidden_child::__private::Some`
LL | let x: Option<i32> = hidden_child::__private::Some(1i32);
| ++++++++++++++++++++++++++++++ +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-parent.stderr b/tests/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-parent.stderr
index f8029e452..ef0828270 100644
--- a/tests/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-parent.stderr
+++ b/tests/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-parent.stderr
@@ -13,6 +13,6 @@ help: try wrapping the expression in `Some`
LL | let x: Option<i32> = Some(1i32);
| +++++ +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/dont-suggest-pin-array-dot-set.stderr b/tests/ui/suggestions/dont-suggest-pin-array-dot-set.stderr
index c66da3ea6..8f738465d 100644
--- a/tests/ui/suggestions/dont-suggest-pin-array-dot-set.stderr
+++ b/tests/ui/suggestions/dont-suggest-pin-array-dot-set.stderr
@@ -4,6 +4,6 @@ error[E0599]: no method named `set` found for array `[u8; 1]` in the current sco
LL | a.set(0, 3);
| ^^^ help: there is a method with a similar name: `get`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/dont-suggest-try_into-in-macros.stderr b/tests/ui/suggestions/dont-suggest-try_into-in-macros.stderr
index 319d86600..348f7e00d 100644
--- a/tests/ui/suggestions/dont-suggest-try_into-in-macros.stderr
+++ b/tests/ui/suggestions/dont-suggest-try_into-in-macros.stderr
@@ -9,6 +9,6 @@ help: change the type of the numeric literal from `usize` to `u64`
LL | assert_eq!(10u64, 10u64);
| ~~~
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/dont-suggest-ufcs-for-const.stderr b/tests/ui/suggestions/dont-suggest-ufcs-for-const.stderr
index 0d9543e0b..6aa187bfb 100644
--- a/tests/ui/suggestions/dont-suggest-ufcs-for-const.stderr
+++ b/tests/ui/suggestions/dont-suggest-ufcs-for-const.stderr
@@ -4,6 +4,6 @@ error[E0599]: no method named `MAX` found for type `u32` in the current scope
LL | 1_u32.MAX();
| ^^^ method not found in `u32`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/dont-wrap-ambiguous-receivers.stderr b/tests/ui/suggestions/dont-wrap-ambiguous-receivers.stderr
index 85fbb8b88..974aedd13 100644
--- a/tests/ui/suggestions/dont-wrap-ambiguous-receivers.stderr
+++ b/tests/ui/suggestions/dont-wrap-ambiguous-receivers.stderr
@@ -15,6 +15,6 @@ LL + use banana::Apple;
LL + use banana::Peach;
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/enum-variant-arg-mismatch.stderr b/tests/ui/suggestions/enum-variant-arg-mismatch.stderr
index f76019b70..16f03d16d 100644
--- a/tests/ui/suggestions/enum-variant-arg-mismatch.stderr
+++ b/tests/ui/suggestions/enum-variant-arg-mismatch.stderr
@@ -16,7 +16,11 @@ note: required by a bound in `map`
|
LL | fn map<'a, F: Fn(String) -> Sexpr<'a>>(f: F) {}
| ^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `map`
+help: consider wrapping the function in a closure
+ |
+LL | map(|arg0: String| Sexpr::Ident(/* &str */));
+ | ++++++++++++++ ++++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0631`.
diff --git a/tests/ui/suggestions/field-access-considering-privacy.stderr b/tests/ui/suggestions/field-access-considering-privacy.stderr
index cbf6f3d10..2b1f45923 100644
--- a/tests/ui/suggestions/field-access-considering-privacy.stderr
+++ b/tests/ui/suggestions/field-access-considering-privacy.stderr
@@ -9,6 +9,6 @@ help: one of the expressions' fields has a field of the same name
LL | tcx.sess.opts;
| +++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0609`.
diff --git a/tests/ui/suggestions/field-has-method.stderr b/tests/ui/suggestions/field-has-method.stderr
index def164017..daff2db64 100644
--- a/tests/ui/suggestions/field-has-method.stderr
+++ b/tests/ui/suggestions/field-has-method.stderr
@@ -12,6 +12,6 @@ help: one of the expressions' fields has a method of the same name
LL | let k = i.value.kind();
| ++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/fn-needing-specified-return-type-param.stderr b/tests/ui/suggestions/fn-needing-specified-return-type-param.stderr
index 9dea667fb..47a7ac895 100644
--- a/tests/ui/suggestions/fn-needing-specified-return-type-param.stderr
+++ b/tests/ui/suggestions/fn-needing-specified-return-type-param.stderr
@@ -9,6 +9,6 @@ help: consider specifying the generic argument
LL | let _ = f::<A>;
| +++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0282`.
diff --git a/tests/ui/suggestions/imm-ref-trait-object-literal-bound-regions.stderr b/tests/ui/suggestions/imm-ref-trait-object-literal-bound-regions.stderr
index fc5a52174..2733bbff3 100644
--- a/tests/ui/suggestions/imm-ref-trait-object-literal-bound-regions.stderr
+++ b/tests/ui/suggestions/imm-ref-trait-object-literal-bound-regions.stderr
@@ -17,6 +17,6 @@ LL | where
LL | for<'b> &'b X: Trait,
| ^^^^^ required by this bound in `foo`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/imm-ref-trait-object.stderr b/tests/ui/suggestions/imm-ref-trait-object.stderr
index f7f7902c1..6cd21fcab 100644
--- a/tests/ui/suggestions/imm-ref-trait-object.stderr
+++ b/tests/ui/suggestions/imm-ref-trait-object.stderr
@@ -9,5 +9,5 @@ help: you need `&mut dyn Iterator<Item = &u64>` instead of `&dyn Iterator<Item =
LL | fn test(t: &mut dyn Iterator<Item=&u64>) -> u64 {
| +++
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/impl-trait-missing-lifetime-gated.stderr b/tests/ui/suggestions/impl-trait-missing-lifetime-gated.stderr
index 50806a672..2dfaa7311 100644
--- a/tests/ui/suggestions/impl-trait-missing-lifetime-gated.stderr
+++ b/tests/ui/suggestions/impl-trait-missing-lifetime-gated.stderr
@@ -5,10 +5,19 @@ LL | fn g(mut x: impl Iterator<Item = &()>) -> Option<&()> { x.next() }
| ^ expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
|
LL | fn g(mut x: impl Iterator<Item = &()>) -> Option<&'static ()> { x.next() }
| +++++++
+help: consider introducing a named lifetime parameter
+ |
+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() }
+LL + fn g(mut x: impl Iterator<Item = &()>) -> Option<()> { x.next() }
+ |
error[E0106]: missing lifetime specifier
--> $DIR/impl-trait-missing-lifetime-gated.rs:19:60
@@ -17,10 +26,19 @@ LL | async fn i(mut x: impl Iterator<Item = &()>) -> Option<&()> { x.next()
| ^ expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
|
LL | async fn i(mut x: impl Iterator<Item = &()>) -> Option<&'static ()> { x.next() }
| +++++++
+help: consider introducing a named lifetime parameter
+ |
+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() }
+LL + async fn i(mut x: impl Iterator<Item = &()>) -> Option<()> { x.next() }
+ |
error[E0106]: missing lifetime specifier
--> $DIR/impl-trait-missing-lifetime-gated.rs:27:58
@@ -29,10 +47,19 @@ LL | fn g(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'_ ()> { x.next()
| ^^ expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values
|
LL | fn g(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'static ()> { x.next() }
| ~~~~~~~
+help: consider introducing a named lifetime parameter
+ |
+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() }
+LL + fn g(mut x: impl Iterator<Item = &'_ ()>) -> Option<()> { x.next() }
+ |
error[E0106]: missing lifetime specifier
--> $DIR/impl-trait-missing-lifetime-gated.rs:37:64
@@ -41,10 +68,19 @@ LL | async fn i(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'_ ()> { x.n
| ^^ expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values
|
LL | async fn i(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'static ()> { x.next() }
| ~~~~~~~
+help: consider introducing a named lifetime parameter
+ |
+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() }
+LL + async fn i(mut x: impl Iterator<Item = &'_ ()>) -> Option<()> { x.next() }
+ |
error[E0106]: missing lifetime specifier
--> $DIR/impl-trait-missing-lifetime-gated.rs:47:37
@@ -53,10 +89,19 @@ LL | fn g(mut x: impl Foo) -> Option<&()> { x.next() }
| ^ expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
|
LL | fn g(mut x: impl Foo) -> Option<&'static ()> { x.next() }
| +++++++
+help: consider introducing a named lifetime parameter
+ |
+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() }
+LL + fn g(mut x: impl Foo) -> Option<()> { x.next() }
+ |
error[E0106]: missing lifetime specifier
--> $DIR/impl-trait-missing-lifetime-gated.rs:58:41
@@ -65,10 +110,19 @@ LL | fn g(mut x: impl Foo<()>) -> Option<&()> { x.next() }
| ^ expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
|
LL | fn g(mut x: impl Foo<()>) -> Option<&'static ()> { x.next() }
| +++++++
+help: consider introducing a named lifetime parameter
+ |
+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() }
+LL + fn g(mut x: impl Foo<()>) -> Option<()> { x.next() }
+ |
error[E0658]: anonymous lifetimes in `impl Trait` are unstable
--> $DIR/impl-trait-missing-lifetime-gated.rs:6:35
diff --git a/tests/ui/suggestions/impl-trait-missing-lifetime.stderr b/tests/ui/suggestions/impl-trait-missing-lifetime.stderr
index 2c29cfa0b..c1dbaae06 100644
--- a/tests/ui/suggestions/impl-trait-missing-lifetime.stderr
+++ b/tests/ui/suggestions/impl-trait-missing-lifetime.stderr
@@ -5,10 +5,19 @@ LL | fn g(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'_ ()> { x.next() }
| ^^ expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values
|
LL | fn g(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'static ()> { x.next() }
| ~~~~~~~
+help: consider introducing a named lifetime parameter
+ |
+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() }
+LL + fn g(mut x: impl Iterator<Item = &'_ ()>) -> Option<()> { x.next() }
+ |
error[E0106]: missing lifetime specifier
--> $DIR/impl-trait-missing-lifetime.rs:16:60
@@ -17,10 +26,19 @@ LL | async fn i(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'_ ()> { x.next(
| ^^ expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values
|
LL | async fn i(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'static ()> { x.next() }
| ~~~~~~~
+help: consider introducing a named lifetime parameter
+ |
+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() }
+LL + async fn i(mut x: impl Iterator<Item = &'_ ()>) -> Option<()> { x.next() }
+ |
error: lifetime may not live long enough
--> $DIR/impl-trait-missing-lifetime.rs:16:69
diff --git a/tests/ui/suggestions/impl-trait-with-missing-trait-bounds-in-arg.stderr b/tests/ui/suggestions/impl-trait-with-missing-trait-bounds-in-arg.stderr
index 20f8e65f7..3a6052448 100644
--- a/tests/ui/suggestions/impl-trait-with-missing-trait-bounds-in-arg.stderr
+++ b/tests/ui/suggestions/impl-trait-with-missing-trait-bounds-in-arg.stderr
@@ -12,6 +12,6 @@ help: the following trait defines an item `hello`, perhaps you need to restrict
LL | fn test(foo: impl Foo + Bar) {
| +++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/import-trait-for-method-call.rs b/tests/ui/suggestions/import-trait-for-method-call.rs
index 4dbadbdf9..feb2c7e84 100644
--- a/tests/ui/suggestions/import-trait-for-method-call.rs
+++ b/tests/ui/suggestions/import-trait-for-method-call.rs
@@ -1,7 +1,7 @@
use std::hash::BuildHasher;
fn next_u64() -> u64 {
- let bh = std::collections::hash_map::RandomState::new();
+ let bh = std::hash::RandomState::new();
let h = bh.build_hasher();
h.finish() //~ ERROR no method named `finish` found for struct `DefaultHasher`
}
diff --git a/tests/ui/suggestions/into-str.stderr b/tests/ui/suggestions/into-str.stderr
index 7e24150e7..d6efc8173 100644
--- a/tests/ui/suggestions/into-str.stderr
+++ b/tests/ui/suggestions/into-str.stderr
@@ -21,6 +21,6 @@ note: required by a bound in `foo`
LL | fn foo<'a, T>(_t: T) where T: Into<&'a str> {}
| ^^^^^^^^^^^^^ required by this bound in `foo`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/invalid-bin-op.stderr b/tests/ui/suggestions/invalid-bin-op.stderr
index 570afcea6..2bd745c64 100644
--- a/tests/ui/suggestions/invalid-bin-op.stderr
+++ b/tests/ui/suggestions/invalid-bin-op.stderr
@@ -16,11 +16,7 @@ help: consider annotating `S<T>` with `#[derive(PartialEq)]`
LL + #[derive(PartialEq)]
LL | struct S<T>(T);
|
-help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
- |
-LL | pub fn foo<T>(s: S<T>, t: S<T>) where S<T>: PartialEq {
- | +++++++++++++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0369`.
diff --git a/tests/ui/suggestions/issue-101065.stderr b/tests/ui/suggestions/issue-101065.stderr
index 9f77ead42..8a7ecc801 100644
--- a/tests/ui/suggestions/issue-101065.stderr
+++ b/tests/ui/suggestions/issue-101065.stderr
@@ -18,6 +18,6 @@ help: try wrapping the expression in `FakeResult::Ok`
LL | FakeResult::Ok(FakeResult::Ok(()))
| +++++++++++++++ +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/issue-101421.stderr b/tests/ui/suggestions/issue-101421.stderr
index 2656ab3db..ececba5fb 100644
--- a/tests/ui/suggestions/issue-101421.stderr
+++ b/tests/ui/suggestions/issue-101421.stderr
@@ -12,6 +12,6 @@ note: method defined here, with 0 generic parameters
LL | fn f(&self, _: ());
| ^
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0107`.
diff --git a/tests/ui/suggestions/issue-101465.stderr b/tests/ui/suggestions/issue-101465.stderr
index 2aec3c863..0dad813b3 100644
--- a/tests/ui/suggestions/issue-101465.stderr
+++ b/tests/ui/suggestions/issue-101465.stderr
@@ -20,6 +20,6 @@ LL ~ true => Box::new(B),
LL ~ false => Box::new(C),
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/issue-101623.stderr b/tests/ui/suggestions/issue-101623.stderr
index 9f00de174..4de91a1b9 100644
--- a/tests/ui/suggestions/issue-101623.stderr
+++ b/tests/ui/suggestions/issue-101623.stderr
@@ -10,6 +10,6 @@ LL | Trait::do_stuff({ fun(&mut *inner) });
= help: the trait `Trait<'_>` is implemented for `()`
= help: for that trait implementation, expected `()`, found `*mut ()`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-101984.stderr b/tests/ui/suggestions/issue-101984.stderr
index 151587d42..c19cda204 100644
--- a/tests/ui/suggestions/issue-101984.stderr
+++ b/tests/ui/suggestions/issue-101984.stderr
@@ -9,6 +9,6 @@ LL | let (cmp, router) = self.router.at()?;
= note: expected struct `Match<&(for<'a> fn(&'a ()), Box<Wrapper>)>`
found tuple `(_, _)`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/issue-102354.stderr b/tests/ui/suggestions/issue-102354.stderr
index 08d4b9955..8340d9340 100644
--- a/tests/ui/suggestions/issue-102354.stderr
+++ b/tests/ui/suggestions/issue-102354.stderr
@@ -14,6 +14,6 @@ note: the candidate is defined in the trait `Trait`
LL | fn func() {}
| ^^^^^^^^^
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/issue-103112.stderr b/tests/ui/suggestions/issue-103112.stderr
index 4ca7fdf9b..b7de57bfd 100644
--- a/tests/ui/suggestions/issue-103112.stderr
+++ b/tests/ui/suggestions/issue-103112.stderr
@@ -10,6 +10,6 @@ LL - std::process::abort!();
LL + std::process::abort();
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0433`.
diff --git a/tests/ui/suggestions/issue-103646.stderr b/tests/ui/suggestions/issue-103646.stderr
index 3ae9813d4..8d0e86523 100644
--- a/tests/ui/suggestions/issue-103646.stderr
+++ b/tests/ui/suggestions/issue-103646.stderr
@@ -16,6 +16,6 @@ note: the candidate is defined in the trait `Cat`
LL | fn nya() {}
| ^^^^^^^^
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/issue-104327.stderr b/tests/ui/suggestions/issue-104327.stderr
index acec3a55d..325b6b6eb 100644
--- a/tests/ui/suggestions/issue-104327.stderr
+++ b/tests/ui/suggestions/issue-104327.stderr
@@ -12,6 +12,6 @@ help: use the fully-qualified path to the only available implementation
LL | <(dyn Bar + 'static) as Foo>::f();
| +++++++++++++++++++++++ +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0790`.
diff --git a/tests/ui/suggestions/issue-104328.stderr b/tests/ui/suggestions/issue-104328.stderr
index b31b84781..a59262183 100644
--- a/tests/ui/suggestions/issue-104328.stderr
+++ b/tests/ui/suggestions/issue-104328.stderr
@@ -12,6 +12,6 @@ help: use the fully-qualified path to the only available implementation
LL | <(dyn Sized + 'static) as Foo>::f();
| +++++++++++++++++++++++++ +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0790`.
diff --git a/tests/ui/suggestions/issue-105645.stderr b/tests/ui/suggestions/issue-105645.stderr
index 895f5ffd1..f717f8f4e 100644
--- a/tests/ui/suggestions/issue-105645.stderr
+++ b/tests/ui/suggestions/issue-105645.stderr
@@ -13,6 +13,6 @@ note: required by a bound in `foo`
LL | fn foo(_: &mut impl std::io::Write) {}
| ^^^^^^^^^^^^^^ required by this bound in `foo`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-107860.stderr b/tests/ui/suggestions/issue-107860.stderr
index 92e3cf8c4..4be495da4 100644
--- a/tests/ui/suggestions/issue-107860.stderr
+++ b/tests/ui/suggestions/issue-107860.stderr
@@ -7,6 +7,6 @@ LL | async fn str<T>(T: &str) -> &str { &str }
= note: expected reference `&str`
found reference `&for<'a> fn(&'a str) -> impl Future<Output = &'a str> {str::<_>}`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/issue-109291.stderr b/tests/ui/suggestions/issue-109291.stderr
index 644841fdf..c787be4de 100644
--- a/tests/ui/suggestions/issue-109291.stderr
+++ b/tests/ui/suggestions/issue-109291.stderr
@@ -14,6 +14,6 @@ note: if you're trying to build a new `Backtrace` consider using one of the foll
Backtrace::create
--> $SRC_DIR/std/src/backtrace.rs:LL:COL
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/issue-109436.stderr b/tests/ui/suggestions/issue-109436.stderr
index c479326f9..4425ce84b 100644
--- a/tests/ui/suggestions/issue-109436.stderr
+++ b/tests/ui/suggestions/issue-109436.stderr
@@ -10,6 +10,6 @@ help: consider borrowing here
LL | let b: Bar = (&foo).into();
| ++ +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-109854.stderr b/tests/ui/suggestions/issue-109854.stderr
index 621a38971..52444cd4c 100644
--- a/tests/ui/suggestions/issue-109854.stderr
+++ b/tests/ui/suggestions/issue-109854.stderr
@@ -26,6 +26,6 @@ LL - generate_setter,
LL + /* usize */,
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0061`.
diff --git a/tests/ui/suggestions/issue-114701.stderr b/tests/ui/suggestions/issue-114701.stderr
index 67462a09c..d2a7806b7 100644
--- a/tests/ui/suggestions/issue-114701.stderr
+++ b/tests/ui/suggestions/issue-114701.stderr
@@ -10,6 +10,6 @@ LL | assert!(if let Enum::$variant::<()> $matcher = $expr () { true } el
LL | is_variant!(UVariant, Enum::<()>::UVariant);
| ^^^^^^^^^^^^^^^^^^^^
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0618`.
diff --git a/tests/ui/suggestions/issue-117669.rs b/tests/ui/suggestions/issue-117669.rs
new file mode 100644
index 000000000..09b4f2bd4
--- /dev/null
+++ b/tests/ui/suggestions/issue-117669.rs
@@ -0,0 +1,4 @@
+fn main() {
+ let abs: i32 = 3i32.checked_abs();
+ //~^ ERROR mismatched types
+}
diff --git a/tests/ui/suggestions/issue-117669.stderr b/tests/ui/suggestions/issue-117669.stderr
new file mode 100644
index 000000000..01783ea4e
--- /dev/null
+++ b/tests/ui/suggestions/issue-117669.stderr
@@ -0,0 +1,18 @@
+error[E0308]: mismatched types
+ --> $DIR/issue-117669.rs:2:20
+ |
+LL | let abs: i32 = 3i32.checked_abs();
+ | --- ^^^^^^^^^^^^^^^^^^ expected `i32`, found `Option<i32>`
+ | |
+ | expected due to this
+ |
+ = note: expected type `i32`
+ found enum `Option<i32>`
+help: consider using `Option::expect` to unwrap the `Option<i32>` value, panicking if the value is an `Option::None`
+ |
+LL | let abs: i32 = 3i32.checked_abs().expect("REASON");
+ | +++++++++++++++++
+
+error: aborting due to 1 previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/issue-51055-missing-semicolon-between-call-and-tuple.stderr b/tests/ui/suggestions/issue-51055-missing-semicolon-between-call-and-tuple.stderr
index bb8b9b370..3c3bc2305 100644
--- a/tests/ui/suggestions/issue-51055-missing-semicolon-between-call-and-tuple.stderr
+++ b/tests/ui/suggestions/issue-51055-missing-semicolon-between-call-and-tuple.stderr
@@ -11,6 +11,6 @@ LL | vindictive()
LL | | (1, 2)
| |__________- call expression requires function
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0618`.
diff --git a/tests/ui/suggestions/issue-61226.stderr b/tests/ui/suggestions/issue-61226.stderr
index cda962a90..890950b1a 100644
--- a/tests/ui/suggestions/issue-61226.stderr
+++ b/tests/ui/suggestions/issue-61226.stderr
@@ -7,6 +7,6 @@ LL | fn main() {
LL | let _ = vec![X]; //…
| ^ help: use struct literal syntax instead: `X {}`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0423`.
diff --git a/tests/ui/suggestions/issue-62843.stderr b/tests/ui/suggestions/issue-62843.stderr
index ead8f1854..f3a9f6b79 100644
--- a/tests/ui/suggestions/issue-62843.stderr
+++ b/tests/ui/suggestions/issue-62843.stderr
@@ -15,6 +15,6 @@ help: consider borrowing here
LL | println!("{:?}", line.find(&pattern));
| +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-66968-suggest-sorted-words.stderr b/tests/ui/suggestions/issue-66968-suggest-sorted-words.stderr
index d7b33ea41..ce0087fbf 100644
--- a/tests/ui/suggestions/issue-66968-suggest-sorted-words.stderr
+++ b/tests/ui/suggestions/issue-66968-suggest-sorted-words.stderr
@@ -4,6 +4,6 @@ error[E0425]: cannot find value `a_variable_longer_name` in this scope
LL | println!("{}", a_variable_longer_name);
| ^^^^^^^^^^^^^^^^^^^^^^ help: a local variable with a similar name exists: `a_longer_variable_name`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0425`.
diff --git a/tests/ui/suggestions/issue-68049-1.stderr b/tests/ui/suggestions/issue-68049-1.stderr
index 7f931f0cd..760f83d54 100644
--- a/tests/ui/suggestions/issue-68049-1.stderr
+++ b/tests/ui/suggestions/issue-68049-1.stderr
@@ -4,6 +4,6 @@ error[E0594]: cannot assign to `self.0`, which is behind a `&` reference
LL | self.0 += 1;
| ^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be written
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0594`.
diff --git a/tests/ui/suggestions/issue-71394-no-from-impl.stderr b/tests/ui/suggestions/issue-71394-no-from-impl.stderr
index 80be252a0..b9b72e0e6 100644
--- a/tests/ui/suggestions/issue-71394-no-from-impl.stderr
+++ b/tests/ui/suggestions/issue-71394-no-from-impl.stderr
@@ -5,7 +5,7 @@ LL | let _: &[i8] = data.into();
| ^^^^ the trait `From<&[u8]>` is not implemented for `&[i8]`
|
= help: the following other types implement trait `From<T>`:
- <[bool; LANES] as From<Mask<T, LANES>>>
+ <[bool; N] as From<Mask<T, N>>>
<[T; N] as From<Simd<T, N>>>
<[T; 1] as From<(T,)>>
<[T; 2] as From<(T, T)>>
@@ -16,6 +16,6 @@ LL | let _: &[i8] = data.into();
and 6 others
= note: required for `&[u8]` to implement `Into<&[i8]>`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-72766.stderr b/tests/ui/suggestions/issue-72766.stderr
index f257bb9b0..f0680dfe1 100644
--- a/tests/ui/suggestions/issue-72766.stderr
+++ b/tests/ui/suggestions/issue-72766.stderr
@@ -10,6 +10,6 @@ help: consider `await`ing on the `Future`
LL | SadGirl {}.call().await?;
| ++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-81839.stderr b/tests/ui/suggestions/issue-81839.stderr
index 238ee637c..de1ea9855 100644
--- a/tests/ui/suggestions/issue-81839.stderr
+++ b/tests/ui/suggestions/issue-81839.stderr
@@ -21,6 +21,6 @@ help: consider using a semicolon here, but this will discard any values in the m
LL | };
| +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/issue-83892.stderr b/tests/ui/suggestions/issue-83892.stderr
index 5e471819b..7dbffcfca 100644
--- a/tests/ui/suggestions/issue-83892.stderr
+++ b/tests/ui/suggestions/issue-83892.stderr
@@ -9,6 +9,6 @@ LL | () => func()
LL | }
| - help: consider using a semicolon here: `;`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/issue-83943.stderr b/tests/ui/suggestions/issue-83943.stderr
index c73667f09..1a0853684 100644
--- a/tests/ui/suggestions/issue-83943.stderr
+++ b/tests/ui/suggestions/issue-83943.stderr
@@ -12,6 +12,6 @@ LL | | "B"
LL | | };
| |_____- `if` and `else` have incompatible types
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/issue-84592.stderr b/tests/ui/suggestions/issue-84592.stderr
index 70c96feb1..fe0a7b673 100644
--- a/tests/ui/suggestions/issue-84592.stderr
+++ b/tests/ui/suggestions/issue-84592.stderr
@@ -12,6 +12,6 @@ help: consider introducing a named lifetime parameter
LL | fn two_lifetimes_needed<'a>(a: &'a (), b: &'a ()) -> TwoLifetimes<'a, 'a> {
| ++++ ++ ++ ~~ ~~
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0106`.
diff --git a/tests/ui/suggestions/issue-84973-2.stderr b/tests/ui/suggestions/issue-84973-2.stderr
index 513bf28fb..74995a050 100644
--- a/tests/ui/suggestions/issue-84973-2.stderr
+++ b/tests/ui/suggestions/issue-84973-2.stderr
@@ -16,6 +16,6 @@ help: consider mutably borrowing here
LL | foo(&mut a);
| ++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-84973.stderr b/tests/ui/suggestions/issue-84973.stderr
index 55c89884a..c5e1958e0 100644
--- a/tests/ui/suggestions/issue-84973.stderr
+++ b/tests/ui/suggestions/issue-84973.stderr
@@ -19,6 +19,6 @@ help: consider borrowing here
LL | let o = Other::new(&f);
| +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-85943-no-suggest-unsized-indirection-in-where-clause.stderr b/tests/ui/suggestions/issue-85943-no-suggest-unsized-indirection-in-where-clause.stderr
index 752533cdc..21b568b02 100644
--- a/tests/ui/suggestions/issue-85943-no-suggest-unsized-indirection-in-where-clause.stderr
+++ b/tests/ui/suggestions/issue-85943-no-suggest-unsized-indirection-in-where-clause.stderr
@@ -18,6 +18,6 @@ LL | struct A<T>(T) where T: Send;
| |
| this could be changed to `T: ?Sized`...
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-85945-check-where-clause-before-suggesting-unsized.stderr b/tests/ui/suggestions/issue-85945-check-where-clause-before-suggesting-unsized.stderr
index 92be9f764..77e5dcd91 100644
--- a/tests/ui/suggestions/issue-85945-check-where-clause-before-suggesting-unsized.stderr
+++ b/tests/ui/suggestions/issue-85945-check-where-clause-before-suggesting-unsized.stderr
@@ -13,6 +13,6 @@ note: required by a bound in `foo`
LL | fn foo<T>(_: &T) where T: Sized {}
| ^ required by this bound in `foo`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-88696.stderr b/tests/ui/suggestions/issue-88696.stderr
index 4947269d7..b4f0793c2 100644
--- a/tests/ui/suggestions/issue-88696.stderr
+++ b/tests/ui/suggestions/issue-88696.stderr
@@ -6,6 +6,6 @@ LL | a().into()
|
= note: required for `Result<u64, i32>` to implement `Into<Result<u32, i32>>`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-89333.stderr b/tests/ui/suggestions/issue-89333.stderr
index 4739f11dd..761de7f25 100644
--- a/tests/ui/suggestions/issue-89333.stderr
+++ b/tests/ui/suggestions/issue-89333.stderr
@@ -15,6 +15,6 @@ note: required by a bound in `test`
LL | fn test<T>(arg: &impl Fn() -> T) where for<'a> &'a T: Trait {}
| ^^^^^ required by this bound in `test`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-89640.stderr b/tests/ui/suggestions/issue-89640.stderr
index 8ff4ef4f0..3252cd6bb 100644
--- a/tests/ui/suggestions/issue-89640.stderr
+++ b/tests/ui/suggestions/issue-89640.stderr
@@ -9,5 +9,5 @@ help: consider removing the space to spell keyword `let`
LL | let x: i32 = 3;
| ~~~
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/issue-90213-expected-boxfuture-self-ice.stderr b/tests/ui/suggestions/issue-90213-expected-boxfuture-self-ice.stderr
index 7d1da7d24..96fb1f3c6 100644
--- a/tests/ui/suggestions/issue-90213-expected-boxfuture-self-ice.stderr
+++ b/tests/ui/suggestions/issue-90213-expected-boxfuture-self-ice.stderr
@@ -19,6 +19,6 @@ help: store this in the heap by calling `Box::new`
LL | Self::foo(Box::new(None))
| +++++++++ +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/issue-90974.stderr b/tests/ui/suggestions/issue-90974.stderr
index e1fb479a3..1a732ecaf 100644
--- a/tests/ui/suggestions/issue-90974.stderr
+++ b/tests/ui/suggestions/issue-90974.stderr
@@ -9,6 +9,6 @@ help: you must specify a concrete type for this numeric value, like `f32`
LL | println!("{}", (3_f32).recip());
| ~~~~~
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0689`.
diff --git a/tests/ui/suggestions/issue-96223.stderr b/tests/ui/suggestions/issue-96223.stderr
index d4e9433df..a54a4e7b3 100644
--- a/tests/ui/suggestions/issue-96223.stderr
+++ b/tests/ui/suggestions/issue-96223.stderr
@@ -26,6 +26,6 @@ note: required by a bound in `icey_bounds`
LL | fn icey_bounds<D: Dummy<EmptyMarker>>(p: &D) {}
| ^^^^^^^^^^^^^^^^^^ required by this bound in `icey_bounds`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-97677.stderr b/tests/ui/suggestions/issue-97677.stderr
index 575d79267..0e95167d8 100644
--- a/tests/ui/suggestions/issue-97677.stderr
+++ b/tests/ui/suggestions/issue-97677.stderr
@@ -11,6 +11,6 @@ help: consider restricting type parameter `N`
LL | fn add_ten<N: std::ops::Add<i32, Output = N>>(n: N) -> N {
| ++++++++++++++++++++++++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0369`.
diff --git a/tests/ui/suggestions/issue-97704.stderr b/tests/ui/suggestions/issue-97704.stderr
index ca017be45..a7284db1d 100644
--- a/tests/ui/suggestions/issue-97704.stderr
+++ b/tests/ui/suggestions/issue-97704.stderr
@@ -10,6 +10,6 @@ help: consider `await`ing on the `Future`
LL | func(async { Ok::<_, i32>(()) }).await?;
| ++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-97760.stderr b/tests/ui/suggestions/issue-97760.stderr
index 5415c247c..c3cf7e139 100644
--- a/tests/ui/suggestions/issue-97760.stderr
+++ b/tests/ui/suggestions/issue-97760.stderr
@@ -13,6 +13,6 @@ LL ~ pub fn print_values<I: IntoIterator>(values: &I)
LL ~ where <I as IntoIterator>::Item: std::fmt::Display {
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-98500.stderr b/tests/ui/suggestions/issue-98500.stderr
index e7251d735..aa66a9aa1 100644
--- a/tests/ui/suggestions/issue-98500.stderr
+++ b/tests/ui/suggestions/issue-98500.stderr
@@ -19,6 +19,6 @@ LL | pub trait B where
= help: consider moving `f` to another trait
= help: consider moving `f2` to another trait
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0038`.
diff --git a/tests/ui/suggestions/issue-98562.stderr b/tests/ui/suggestions/issue-98562.stderr
index 7897fa441..578eb284c 100644
--- a/tests/ui/suggestions/issue-98562.stderr
+++ b/tests/ui/suggestions/issue-98562.stderr
@@ -6,6 +6,6 @@ LL | impl TraitA<u8, u16, u32> for X {
|
= help: implement the missing item: `fn baz<U: TraitC<I1 = u8, I2 = u16> + TraitD<I3 = u32>, V: TraitD<I3 = u8>>(_: U, _: V) -> Self where U: TraitE, U: TraitB, <U as TraitB>::Item: Copy { todo!() }`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0046`.
diff --git a/tests/ui/suggestions/issue-99080.stderr b/tests/ui/suggestions/issue-99080.stderr
index d1908dd9d..9c385a7a4 100644
--- a/tests/ui/suggestions/issue-99080.stderr
+++ b/tests/ui/suggestions/issue-99080.stderr
@@ -15,6 +15,6 @@ note: required by a bound in `needs_meow`
LL | fn needs_meow<T: Meow>(t: T) {}
| ^^^^ required by this bound in `needs_meow`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/issue-99240-2.stderr b/tests/ui/suggestions/issue-99240-2.stderr
index a2b559784..00bffee65 100644
--- a/tests/ui/suggestions/issue-99240-2.stderr
+++ b/tests/ui/suggestions/issue-99240-2.stderr
@@ -16,6 +16,6 @@ LL - Unit();
LL + Unit;
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0618`.
diff --git a/tests/ui/suggestions/issue-99240.stderr b/tests/ui/suggestions/issue-99240.stderr
index f1bea688b..ea819067a 100644
--- a/tests/ui/suggestions/issue-99240.stderr
+++ b/tests/ui/suggestions/issue-99240.stderr
@@ -6,6 +6,6 @@ LL | (it.0.take())()
| |
| call expression requires function
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0618`.
diff --git a/tests/ui/suggestions/issue-99597.stderr b/tests/ui/suggestions/issue-99597.stderr
index bdf2a07c1..e1d7aac26 100644
--- a/tests/ui/suggestions/issue-99597.stderr
+++ b/tests/ui/suggestions/issue-99597.stderr
@@ -10,6 +10,6 @@ help: the following trait defines an item `test`, perhaps you need to restrict t
LL | fn go(s: &(impl T1 + T2)) {
| + +++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/js-style-comparison-op-separate-eq-token.stderr b/tests/ui/suggestions/js-style-comparison-op-separate-eq-token.stderr
index 6adefe3de..9ef28bc26 100644
--- a/tests/ui/suggestions/js-style-comparison-op-separate-eq-token.stderr
+++ b/tests/ui/suggestions/js-style-comparison-op-separate-eq-token.stderr
@@ -4,5 +4,5 @@ error: expected expression, found `=`
LL | if 1 == = 1 {
| ^ expected expression
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/late-bound-in-borrow-closure-sugg.stderr b/tests/ui/suggestions/late-bound-in-borrow-closure-sugg.stderr
index a03d4e8ce..ee9245225 100644
--- a/tests/ui/suggestions/late-bound-in-borrow-closure-sugg.stderr
+++ b/tests/ui/suggestions/late-bound-in-borrow-closure-sugg.stderr
@@ -16,11 +16,15 @@ note: required by a bound in `Trader::<'a>::set_closure`
|
LL | pub fn set_closure(&mut self, function: impl Fn(&mut Trader) + 'a) {
| ^^^^^^^^^^^^^^^ required by this bound in `Trader::<'a>::set_closure`
+help: consider wrapping the function in a closure
+ |
+LL | trader.set_closure(|arg0: &mut Trader<'_>| closure(*arg0));
+ | +++++++++++++++++++++++ +++++++
help: consider adjusting the signature so it borrows its argument
|
LL | let closure = |trader : &mut Trader| {
| ++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0631`.
diff --git a/tests/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.stderr b/tests/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.stderr
index 6c63e1ada..2677b7943 100644
--- a/tests/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.stderr
+++ b/tests/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.stderr
@@ -14,6 +14,6 @@ help: consider adding an explicit lifetime bound
LL | fn func<'a, T: Test + 'a>(_dummy: &Foo, foo: &Foo<'a>, t: T) {
| +++ ++++ ++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0311`.
diff --git a/tests/ui/suggestions/lifetimes/missing-lifetimes-in-signature-before-const.stderr b/tests/ui/suggestions/lifetimes/missing-lifetimes-in-signature-before-const.stderr
index 7b126c90e..00bc43d5e 100644
--- a/tests/ui/suggestions/lifetimes/missing-lifetimes-in-signature-before-const.stderr
+++ b/tests/ui/suggestions/lifetimes/missing-lifetimes-in-signature-before-const.stderr
@@ -10,6 +10,6 @@ help: consider introducing a named lifetime parameter
LL | fn buggy_const<'a, const N: usize>(_a: &'a Option<[u8; N]>, _f: &'a str) -> &'a str {
| +++ ++ ++ ++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0106`.
diff --git a/tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.fixed b/tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.fixed
new file mode 100644
index 000000000..84315ad91
--- /dev/null
+++ b/tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.fixed
@@ -0,0 +1,11 @@
+// run-rustfix
+use std::any::Any;
+
+fn foo<T: Any>(value: &T) -> Box<dyn Any + '_> {
+ Box::new(value) as Box<dyn Any>
+ //~^ ERROR lifetime may not live long enough
+}
+
+fn main() {
+ let _ = foo(&5);
+}
diff --git a/tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.rs b/tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.rs
new file mode 100644
index 000000000..fa7e72ff2
--- /dev/null
+++ b/tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.rs
@@ -0,0 +1,11 @@
+// run-rustfix
+use std::any::Any;
+
+fn foo<T: Any>(value: &T) -> Box<dyn Any> {
+ Box::new(value) as Box<dyn Any>
+ //~^ ERROR lifetime may not live long enough
+}
+
+fn main() {
+ let _ = foo(&5);
+}
diff --git a/tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.stderr b/tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.stderr
new file mode 100644
index 000000000..73fa5ddb1
--- /dev/null
+++ b/tests/ui/suggestions/lifetimes/suggest-using-tick-underscore-lifetime-in-return-trait-object.stderr
@@ -0,0 +1,15 @@
+error: lifetime may not live long enough
+ --> $DIR/suggest-using-tick-underscore-lifetime-in-return-trait-object.rs:5:5
+ |
+LL | fn foo<T: Any>(value: &T) -> Box<dyn Any> {
+ | - let's call the lifetime of this reference `'1`
+LL | Box::new(value) as Box<dyn Any>
+ | ^^^^^^^^^^^^^^^ cast requires that `'1` must outlive `'static`
+ |
+help: to declare that the trait object captures data from argument `value`, you can add an explicit `'_` lifetime bound
+ |
+LL | fn foo<T: Any>(value: &T) -> Box<dyn Any + '_> {
+ | ++++
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/suggestions/many-type-ascription.stderr b/tests/ui/suggestions/many-type-ascription.stderr
index e36919c82..feddc7d62 100644
--- a/tests/ui/suggestions/many-type-ascription.stderr
+++ b/tests/ui/suggestions/many-type-ascription.stderr
@@ -6,5 +6,5 @@ LL | let _ = 0: i32;
|
= note: type ascription syntax has been removed, see issue #101728 <https://github.com/rust-lang/rust/issues/101728>
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/method-access-to-range-literal-typo.stderr b/tests/ui/suggestions/method-access-to-range-literal-typo.stderr
index 54a16b8ef..b1fb0254c 100644
--- a/tests/ui/suggestions/method-access-to-range-literal-typo.stderr
+++ b/tests/ui/suggestions/method-access-to-range-literal-typo.stderr
@@ -18,8 +18,8 @@ LL | fn method(&self) -> Option<&Vec<u8>> {
LL | self.option..as_ref().map(|x| x)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Option<&Vec<u8>>`, found `Range<Option<Vec<u8>>>`
|
- = note: expected enum `Option<&Vec<u8>>`
- found struct `std::ops::Range<Option<Vec<u8>>>`
+ = note: expected enum `Option<&Vec<_>>`
+ found struct `std::ops::Range<Option<Vec<_>>>`
help: you likely meant to write a method call instead of a range
|
LL - self.option..as_ref().map(|x| x)
diff --git a/tests/ui/suggestions/mismatched-types-numeric-from.stderr b/tests/ui/suggestions/mismatched-types-numeric-from.stderr
index 4d44d893a..93024b1f0 100644
--- a/tests/ui/suggestions/mismatched-types-numeric-from.stderr
+++ b/tests/ui/suggestions/mismatched-types-numeric-from.stderr
@@ -6,6 +6,6 @@ LL | let _: u32 = i32::from(0_u8);
| |
| expected due to this
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/missing-assoc-fn-applicable-suggestions.stderr b/tests/ui/suggestions/missing-assoc-fn-applicable-suggestions.stderr
index 4c2d2776d..3cf5c6e7b 100644
--- a/tests/ui/suggestions/missing-assoc-fn-applicable-suggestions.stderr
+++ b/tests/ui/suggestions/missing-assoc-fn-applicable-suggestions.stderr
@@ -9,6 +9,6 @@ LL | impl TraitA<()> for S {
= help: implement the missing item: `fn baz<T>(_: T) -> Self where T: TraitB, <T as TraitB>::Item: Copy { todo!() }`
= help: implement the missing item: `const A: usize = 42;`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0046`.
diff --git a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-2.stderr b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-2.stderr
index 03082be69..f9db1e1ec 100644
--- a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-2.stderr
+++ b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-2.stderr
@@ -14,6 +14,6 @@ help: consider further restricting this bound
LL | pub struct AABB<K: Debug + std::marker::Copy>{
| +++++++++++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.stderr b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.stderr
index 09696e061..ed1bde5f8 100644
--- a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.stderr
+++ b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.stderr
@@ -18,6 +18,6 @@ help: consider further restricting this bound
LL | pub struct AABB<K: Copy + Debug>{
| +++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0204`.
diff --git a/tests/ui/suggestions/missing-bound-in-derive-copy-impl.stderr b/tests/ui/suggestions/missing-bound-in-derive-copy-impl.stderr
index 8585fe47b..03db737fa 100644
--- a/tests/ui/suggestions/missing-bound-in-derive-copy-impl.stderr
+++ b/tests/ui/suggestions/missing-bound-in-derive-copy-impl.stderr
@@ -18,6 +18,6 @@ help: consider restricting type parameter `K`
LL | pub struct AABB<K: Debug>{
| +++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0204`.
diff --git a/tests/ui/suggestions/missing-bound-in-manual-copy-impl-2.stderr b/tests/ui/suggestions/missing-bound-in-manual-copy-impl-2.stderr
index 856d8db38..6dc512223 100644
--- a/tests/ui/suggestions/missing-bound-in-manual-copy-impl-2.stderr
+++ b/tests/ui/suggestions/missing-bound-in-manual-copy-impl-2.stderr
@@ -17,6 +17,6 @@ help: consider restricting type parameter `S`
LL | impl<S: std::fmt::Display> Copy for Wrapper<OnlyCopyIfDisplay<S>> {}
| +++++++++++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0204`.
diff --git a/tests/ui/suggestions/missing-bound-in-manual-copy-impl.stderr b/tests/ui/suggestions/missing-bound-in-manual-copy-impl.stderr
index ec3e4f23a..fd38d4c64 100644
--- a/tests/ui/suggestions/missing-bound-in-manual-copy-impl.stderr
+++ b/tests/ui/suggestions/missing-bound-in-manual-copy-impl.stderr
@@ -12,6 +12,6 @@ help: consider restricting type parameter `S`
LL | impl<S: Copy> Copy for Wrapper<S> {}
| ++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0204`.
diff --git a/tests/ui/suggestions/missing-lifetime-specifier.stderr b/tests/ui/suggestions/missing-lifetime-specifier.stderr
index fa4bc2fa7..e41f547ce 100644
--- a/tests/ui/suggestions/missing-lifetime-specifier.stderr
+++ b/tests/ui/suggestions/missing-lifetime-specifier.stderr
@@ -5,7 +5,7 @@ LL | static a: RefCell<HashMap<i32, Vec<Vec<Foo>>>> = RefCell::new(HashMap::
| ^^^ expected 2 lifetime parameters
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values
|
LL | static a: RefCell<HashMap<i32, Vec<Vec<Foo<'static, 'static>>>>> = RefCell::new(HashMap::new());
| ++++++++++++++++++
@@ -32,7 +32,7 @@ LL | static b: RefCell<HashMap<i32, Vec<Vec<&Bar>>>> = RefCell::new(HashMap:
| expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
|
LL | static b: RefCell<HashMap<i32, Vec<Vec<&'static Bar<'static, 'static>>>>> = RefCell::new(HashMap::new());
| +++++++ ++++++++++++++++++
@@ -59,7 +59,7 @@ LL | static c: RefCell<HashMap<i32, Vec<Vec<Qux<i32>>>>> = RefCell::new(Hash
| ^ expected 2 lifetime parameters
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values
|
LL | static c: RefCell<HashMap<i32, Vec<Vec<Qux<'static, 'static, i32>>>>> = RefCell::new(HashMap::new());
| +++++++++++++++++
@@ -86,7 +86,7 @@ LL | static d: RefCell<HashMap<i32, Vec<Vec<&Tar<i32>>>>> = RefCell::new(Has
| expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
|
LL | static d: RefCell<HashMap<i32, Vec<Vec<&'static Tar<'static, 'static, i32>>>>> = RefCell::new(HashMap::new());
| +++++++ +++++++++++++++++
@@ -113,7 +113,7 @@ LL | static f: RefCell<HashMap<i32, Vec<Vec<&Tar<'static, i32>>>>> = RefCell
| ^ expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
|
LL | static f: RefCell<HashMap<i32, Vec<Vec<&'static Tar<'static, i32>>>>> = RefCell::new(HashMap::new());
| +++++++
diff --git a/tests/ui/suggestions/missing-type-param-used-in-param.stderr b/tests/ui/suggestions/missing-type-param-used-in-param.stderr
index 3116c5a0a..d667fc365 100644
--- a/tests/ui/suggestions/missing-type-param-used-in-param.stderr
+++ b/tests/ui/suggestions/missing-type-param-used-in-param.stderr
@@ -16,6 +16,6 @@ help: add missing generic argument
LL | two_type_params::<String, _>(100);
| +++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0107`.
diff --git a/tests/ui/suggestions/move-generic-to-trait-in-method-with-params.stderr b/tests/ui/suggestions/move-generic-to-trait-in-method-with-params.stderr
index bfdb35947..aa11bc7cf 100644
--- a/tests/ui/suggestions/move-generic-to-trait-in-method-with-params.stderr
+++ b/tests/ui/suggestions/move-generic-to-trait-in-method-with-params.stderr
@@ -19,6 +19,6 @@ LL - 1.bar::<i32>(0);
LL + 1.bar(0);
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0107`.
diff --git a/tests/ui/suggestions/multiline-multipart-suggestion.rs b/tests/ui/suggestions/multiline-multipart-suggestion.rs
deleted file mode 100644
index 77d0322d0..000000000
--- a/tests/ui/suggestions/multiline-multipart-suggestion.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-// compile-flags: --error-format=human --color=always
-// ignore-windows
-
-fn short(foo_bar: &Vec<&i32>) -> &i32 { //~ ERROR missing lifetime specifier
- &12
-}
-
-fn long( //~ ERROR missing lifetime specifier
- foo_bar: &Vec<&i32>,
- something_very_long_so_that_the_line_will_wrap_around__________: i32,
-) -> &i32 {
- &12
-}
-
-fn long2( //~ ERROR missing lifetime specifier
- foo_bar: &Vec<&i32>) -> &i32 {
- &12
-}
-fn main() {}
diff --git a/tests/ui/suggestions/multiline-multipart-suggestion.stderr b/tests/ui/suggestions/multiline-multipart-suggestion.stderr
deleted file mode 100644
index 045a86b4f..000000000
--- a/tests/ui/suggestions/multiline-multipart-suggestion.stderr
+++ /dev/null
@@ -1,46 +0,0 @@
-error[E0106]: missing lifetime specifier
- --> $DIR/multiline-multipart-suggestion.rs:4:34
- |
-LL | fn short(foo_bar: &Vec<&i32>) -> &i32 {
- |  ---------- ^ expected named lifetime parameter
- |
- = help: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from
-help: consider introducing a named lifetime parameter
- |
-LL | fn short<'a>(foo_bar: &'a Vec<&'a i32>) -> &'a i32 {
- | ++++ ++ ++ ++
-
-error[E0106]: missing lifetime specifier
- --> $DIR/multiline-multipart-suggestion.rs:11:6
- |
-LL |  foo_bar: &Vec<&i32>,
- |  ----------
-LL |  something_very_long_so_that_the_line_will_wrap_around__________: i32,
-LL | ) -> &i32 {
- |  ^ expected named lifetime parameter
- |
- = help: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from
-help: consider introducing a named lifetime parameter
- |
-LL ~ fn long<'a>(
-LL ~  foo_bar: &'a Vec<&'a i32>,
-LL |  something_very_long_so_that_the_line_will_wrap_around__________: i32,
-LL ~ ) -> &'a i32 {
- |
-
-error[E0106]: missing lifetime specifier
- --> $DIR/multiline-multipart-suggestion.rs:16:29
- |
-LL |  foo_bar: &Vec<&i32>) -> &i32 {
- |  ---------- ^ expected named lifetime parameter
- |
- = help: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from
-help: consider introducing a named lifetime parameter
- |
-LL ~ fn long2<'a>(
-LL ~  foo_bar: &'a Vec<&'a i32>) -> &'a i32 {
- |
-
-error: aborting due to 3 previous errors
-
-For more information about this error, try `rustc --explain E0106`.
diff --git a/tests/ui/suggestions/mut-ref-reassignment.stderr b/tests/ui/suggestions/mut-ref-reassignment.stderr
index b86a04c7c..a225b34f8 100644
--- a/tests/ui/suggestions/mut-ref-reassignment.stderr
+++ b/tests/ui/suggestions/mut-ref-reassignment.stderr
@@ -32,8 +32,8 @@ LL | fn suggestion2(opt: &mut Option<String>) {
LL | opt = Some(String::new())
| ^^^^^^^^^^^^^^^^^^^ expected `&mut Option<String>`, found `Option<String>`
|
- = note: expected mutable reference `&mut Option<String>`
- found enum `Option<String>`
+ = note: expected mutable reference `&mut Option<_>`
+ found enum `Option<_>`
help: consider dereferencing here to assign to the mutably borrowed value
|
LL | *opt = Some(String::new())
diff --git a/tests/ui/suggestions/no-extern-crate-in-type.stderr b/tests/ui/suggestions/no-extern-crate-in-type.stderr
index 68100e56c..384b17d1e 100644
--- a/tests/ui/suggestions/no-extern-crate-in-type.stderr
+++ b/tests/ui/suggestions/no-extern-crate-in-type.stderr
@@ -9,6 +9,6 @@ help: consider importing this struct
LL + use foo::Foo;
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0412`.
diff --git a/tests/ui/suggestions/non-existent-field-present-in-subfield-recursion-limit.stderr b/tests/ui/suggestions/non-existent-field-present-in-subfield-recursion-limit.stderr
index b294f4da7..278bfc60b 100644
--- a/tests/ui/suggestions/non-existent-field-present-in-subfield-recursion-limit.stderr
+++ b/tests/ui/suggestions/non-existent-field-present-in-subfield-recursion-limit.stderr
@@ -6,6 +6,6 @@ LL | let test = fooer.f;
|
= note: available fields are: `first`, `second`, `third`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0609`.
diff --git a/tests/ui/suggestions/non-existent-field-present-in-subfield.stderr b/tests/ui/suggestions/non-existent-field-present-in-subfield.stderr
index cc991b915..65353ed92 100644
--- a/tests/ui/suggestions/non-existent-field-present-in-subfield.stderr
+++ b/tests/ui/suggestions/non-existent-field-present-in-subfield.stderr
@@ -4,7 +4,6 @@ error[E0609]: no field `c` on type `Foo`
LL | let _test = &fooer.c;
| ^ unknown field
|
- = note: available fields are: `first`, `_second`, `_third`
help: one of the expressions' fields has a field of the same name
|
LL | let _test = &fooer.first.bar.c;
@@ -16,7 +15,6 @@ error[E0609]: no field `test` on type `Foo`
LL | let _test2 = fooer.test;
| ^^^^ unknown field
|
- = note: available fields are: `first`, `_second`, `_third`
help: one of the expressions' fields has a field of the same name
|
LL | let _test2 = fooer.first.bar.c.test;
diff --git a/tests/ui/suggestions/non_ascii_ident.rs b/tests/ui/suggestions/non_ascii_ident.rs
new file mode 100644
index 000000000..9c8971475
--- /dev/null
+++ b/tests/ui/suggestions/non_ascii_ident.rs
@@ -0,0 +1,7 @@
+fn main() {
+ // There shall be no suggestions here. In particular not `Ok`.
+ let _ = 读文; //~ ERROR cannot find value `读文` in this scope
+
+ let f = 0f32; // Important line to make this an ICE regression test
+ 读文(f); //~ ERROR cannot find function `读文` in this scope
+}
diff --git a/tests/ui/suggestions/non_ascii_ident.stderr b/tests/ui/suggestions/non_ascii_ident.stderr
new file mode 100644
index 000000000..fdcc64aef
--- /dev/null
+++ b/tests/ui/suggestions/non_ascii_ident.stderr
@@ -0,0 +1,15 @@
+error[E0425]: cannot find value `读文` in this scope
+ --> $DIR/non_ascii_ident.rs:3:13
+ |
+LL | let _ = 读文;
+ | ^^^^ not found in this scope
+
+error[E0425]: cannot find function `读文` in this scope
+ --> $DIR/non_ascii_ident.rs:6:5
+ |
+LL | 读文(f);
+ | ^^^^ not found in this scope
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0425`.
diff --git a/tests/ui/suggestions/opaque-type-error.stderr b/tests/ui/suggestions/opaque-type-error.stderr
index 5c90d3012..3ce45c7b6 100644
--- a/tests/ui/suggestions/opaque-type-error.stderr
+++ b/tests/ui/suggestions/opaque-type-error.stderr
@@ -24,6 +24,6 @@ LL | } else {
LL ~ thing_two().await
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/option-content-move-from-tuple-match.stderr b/tests/ui/suggestions/option-content-move-from-tuple-match.stderr
index 97d05d9dc..63314acb8 100644
--- a/tests/ui/suggestions/option-content-move-from-tuple-match.stderr
+++ b/tests/ui/suggestions/option-content-move-from-tuple-match.stderr
@@ -15,6 +15,6 @@ help: consider borrowing the pattern binding
LL | (None, &ref c) => &c.unwrap(),
| +++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0507`.
diff --git a/tests/ui/suggestions/option-content-move.fixed b/tests/ui/suggestions/option-content-move.fixed
new file mode 100644
index 000000000..5e79cf71d
--- /dev/null
+++ b/tests/ui/suggestions/option-content-move.fixed
@@ -0,0 +1,38 @@
+// run-rustfix
+pub struct LipogramCorpora {
+ selections: Vec<(char, Option<String>)>,
+}
+
+impl LipogramCorpora {
+ pub fn validate_all(&mut self) -> Result<(), char> {
+ for selection in &self.selections {
+ if selection.1.is_some() {
+ if <Option<String> as Clone>::clone(&selection.1).unwrap().contains(selection.0) {
+ //~^ ERROR cannot move out of `selection.1`
+ return Err(selection.0);
+ }
+ }
+ }
+ Ok(())
+ }
+}
+
+pub struct LipogramCorpora2 {
+ selections: Vec<(char, Result<String, String>)>,
+}
+
+impl LipogramCorpora2 {
+ pub fn validate_all(&mut self) -> Result<(), char> {
+ for selection in &self.selections {
+ if selection.1.is_ok() {
+ if <Result<String, String> as Clone>::clone(&selection.1).unwrap().contains(selection.0) {
+ //~^ ERROR cannot move out of `selection.1`
+ return Err(selection.0);
+ }
+ }
+ }
+ Ok(())
+ }
+}
+
+fn main() {}
diff --git a/tests/ui/suggestions/option-content-move.rs b/tests/ui/suggestions/option-content-move.rs
index 46c895b95..58efbe71f 100644
--- a/tests/ui/suggestions/option-content-move.rs
+++ b/tests/ui/suggestions/option-content-move.rs
@@ -1,3 +1,4 @@
+// run-rustfix
pub struct LipogramCorpora {
selections: Vec<(char, Option<String>)>,
}
diff --git a/tests/ui/suggestions/option-content-move.stderr b/tests/ui/suggestions/option-content-move.stderr
index 5060606d8..e5de15027 100644
--- a/tests/ui/suggestions/option-content-move.stderr
+++ b/tests/ui/suggestions/option-content-move.stderr
@@ -1,5 +1,5 @@
error[E0507]: cannot move out of `selection.1` which is behind a shared reference
- --> $DIR/option-content-move.rs:9:20
+ --> $DIR/option-content-move.rs:10:20
|
LL | if selection.1.unwrap().contains(selection.0) {
| ^^^^^^^^^^^ -------- `selection.1` moved due to this method call
@@ -11,11 +11,11 @@ note: `Option::<T>::unwrap` takes ownership of the receiver `self`, which moves
--> $SRC_DIR/core/src/option.rs:LL:COL
help: you can `clone` the value and consume it, but this might not be your desired behavior
|
-LL | if selection.1.clone().unwrap().contains(selection.0) {
- | ++++++++
+LL | if <Option<String> as Clone>::clone(&selection.1).unwrap().contains(selection.0) {
+ | ++++++++++++++++++++++++++++++++++ +
error[E0507]: cannot move out of `selection.1` which is behind a shared reference
- --> $DIR/option-content-move.rs:27:20
+ --> $DIR/option-content-move.rs:28:20
|
LL | if selection.1.unwrap().contains(selection.0) {
| ^^^^^^^^^^^ -------- `selection.1` moved due to this method call
@@ -27,8 +27,8 @@ note: `Result::<T, E>::unwrap` takes ownership of the receiver `self`, which mov
--> $SRC_DIR/core/src/result.rs:LL:COL
help: you can `clone` the value and consume it, but this might not be your desired behavior
|
-LL | if selection.1.clone().unwrap().contains(selection.0) {
- | ++++++++
+LL | if <Result<String, String> as Clone>::clone(&selection.1).unwrap().contains(selection.0) {
+ | ++++++++++++++++++++++++++++++++++++++++++ +
error: aborting due to 2 previous errors
diff --git a/tests/ui/suggestions/option-content-move2.stderr b/tests/ui/suggestions/option-content-move2.stderr
index 94acda73c..0297c031e 100644
--- a/tests/ui/suggestions/option-content-move2.stderr
+++ b/tests/ui/suggestions/option-content-move2.stderr
@@ -15,6 +15,6 @@ LL | var = Some(NotCopyable);
| variable moved due to use in closure
| move occurs because `var` has type `Option<NotCopyable>`, which does not implement the `Copy` trait
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0507`.
diff --git a/tests/ui/suggestions/option-to-bool.stderr b/tests/ui/suggestions/option-to-bool.stderr
index e042f07da..e16d829ca 100644
--- a/tests/ui/suggestions/option-to-bool.stderr
+++ b/tests/ui/suggestions/option-to-bool.stderr
@@ -13,6 +13,6 @@ help: use `Option::is_some` to test if the `Option` has a value
LL | if true && x.is_some() {}
| ++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/parenthesized-deref-suggestion.stderr b/tests/ui/suggestions/parenthesized-deref-suggestion.stderr
index cafddbe26..9f185f5dd 100644
--- a/tests/ui/suggestions/parenthesized-deref-suggestion.stderr
+++ b/tests/ui/suggestions/parenthesized-deref-suggestion.stderr
@@ -2,7 +2,7 @@ error[E0609]: no field `opts` on type `*const Session`
--> $DIR/parenthesized-deref-suggestion.rs:7:30
|
LL | (sess as *const Session).opts;
- | ^^^^
+ | ^^^^ unknown field
|
help: `(sess as *const Session)` is a raw pointer; try dereferencing it
|
@@ -14,7 +14,8 @@ error[E0609]: no field `0` on type `[u32; 1]`
|
LL | (x as [u32; 1]).0;
| ----------------^
- | |
+ | | |
+ | | unknown field
| help: instead of using tuple indexing, use array indexing: `(x as [u32; 1])[0]`
error: aborting due to 2 previous errors
diff --git a/tests/ui/suggestions/path-by-value.stderr b/tests/ui/suggestions/path-by-value.stderr
index fd3646b8c..567d9d5b9 100644
--- a/tests/ui/suggestions/path-by-value.stderr
+++ b/tests/ui/suggestions/path-by-value.stderr
@@ -13,6 +13,6 @@ help: function arguments must have a statically known size, borrowed types alway
LL | fn f(p: &Path) { }
| +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/private-field.stderr b/tests/ui/suggestions/private-field.stderr
index c38c795e0..0d73af038 100644
--- a/tests/ui/suggestions/private-field.stderr
+++ b/tests/ui/suggestions/private-field.stderr
@@ -4,8 +4,8 @@ error[E0609]: no field `cap` on type `S`
LL | dbg!(s.cap)
| ^^^ unknown field
|
- = note: available fields are: `val`
+ = note: available field is: `val`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0609`.
diff --git a/tests/ui/suggestions/range-index-instead-of-colon.rs b/tests/ui/suggestions/range-index-instead-of-colon.rs
new file mode 100644
index 000000000..3267527ec
--- /dev/null
+++ b/tests/ui/suggestions/range-index-instead-of-colon.rs
@@ -0,0 +1,7 @@
+// edition:2021
+
+fn main() {
+ &[1, 2, 3][1:2];
+ //~^ ERROR: expected one of
+ //~| HELP: you might have meant a range expression
+}
diff --git a/tests/ui/suggestions/range-index-instead-of-colon.stderr b/tests/ui/suggestions/range-index-instead-of-colon.stderr
new file mode 100644
index 000000000..df29356cc
--- /dev/null
+++ b/tests/ui/suggestions/range-index-instead-of-colon.stderr
@@ -0,0 +1,13 @@
+error: expected one of `.`, `?`, `]`, or an operator, found `:`
+ --> $DIR/range-index-instead-of-colon.rs:4:17
+ |
+LL | &[1, 2, 3][1:2];
+ | ^ expected one of `.`, `?`, `]`, or an operator
+ |
+help: you might have meant a range expression
+ |
+LL | &[1, 2, 3][1..2];
+ | ~~
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/suggestions/remove-question-symbol-with-paren.stderr b/tests/ui/suggestions/remove-question-symbol-with-paren.stderr
index 40b9cf2dc..bdea727a0 100644
--- a/tests/ui/suggestions/remove-question-symbol-with-paren.stderr
+++ b/tests/ui/suggestions/remove-question-symbol-with-paren.stderr
@@ -20,6 +20,6 @@ help: try wrapping the expression in `Some`
LL | (Some(x?))
| +++++ +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/restrict-type-not-param.stderr b/tests/ui/suggestions/restrict-type-not-param.stderr
index 3c7d42888..6d9780a87 100644
--- a/tests/ui/suggestions/restrict-type-not-param.stderr
+++ b/tests/ui/suggestions/restrict-type-not-param.stderr
@@ -18,6 +18,6 @@ help: consider introducing a `where` clause, but there might be an alternative b
LL | fn qux<T>(a: Wrapper<T>, b: T) -> T where Wrapper<T>: Add<T, Output = T> {
| ++++++++++++++++++++++++++++++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0369`.
diff --git a/tests/ui/suggestions/return-cycle-2.stderr b/tests/ui/suggestions/return-cycle-2.stderr
index 3a1a0f7f4..23de2309e 100644
--- a/tests/ui/suggestions/return-cycle-2.stderr
+++ b/tests/ui/suggestions/return-cycle-2.stderr
@@ -7,6 +7,6 @@ LL | fn as_ref(_: i32, _: i32) -> _ {
| not allowed in type signatures
| help: replace with the correct return type: `Token<&'static T>`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0121`.
diff --git a/tests/ui/suggestions/return-cycle.stderr b/tests/ui/suggestions/return-cycle.stderr
index 63fa9e040..604704904 100644
--- a/tests/ui/suggestions/return-cycle.stderr
+++ b/tests/ui/suggestions/return-cycle.stderr
@@ -7,6 +7,6 @@ LL | fn new() -> _ {
| not allowed in type signatures
| help: replace with the correct return type: `Token<()>`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0121`.
diff --git a/tests/ui/suggestions/return-elided-lifetime.stderr b/tests/ui/suggestions/return-elided-lifetime.stderr
index 273d95bc7..7bfffd301 100644
--- a/tests/ui/suggestions/return-elided-lifetime.stderr
+++ b/tests/ui/suggestions/return-elided-lifetime.stderr
@@ -5,10 +5,15 @@ LL | fn f1() -> &i32 { loop {} }
| ^ expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
|
LL | fn f1() -> &'static i32 { loop {} }
| +++++++
+help: instead, you are more likely to want to return an owned value
+ |
+LL - fn f1() -> &i32 { loop {} }
+LL + fn f1() -> i32 { loop {} }
+ |
error[E0106]: missing lifetime specifiers
--> $DIR/return-elided-lifetime.rs:8:14
@@ -19,7 +24,7 @@ LL | fn f1_() -> (&i32, &i32) { loop {} }
| expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
|
LL | fn f1_() -> (&'static i32, &'static i32) { loop {} }
| +++++++ +++++++
@@ -31,10 +36,19 @@ LL | fn f2(a: i32, b: i32) -> &i32 { loop {} }
| ^ expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
|
LL | fn f2(a: i32, b: i32) -> &'static i32 { loop {} }
| +++++++
+help: instead, you are more likely to want to change one of the arguments to be borrowed...
+ |
+LL | fn f2(a: &i32, b: &i32) -> &i32 { loop {} }
+ | + +
+help: ...or alternatively, you might want to return an owned value
+ |
+LL - fn f2(a: i32, b: i32) -> &i32 { loop {} }
+LL + fn f2(a: i32, b: i32) -> i32 { loop {} }
+ |
error[E0106]: missing lifetime specifiers
--> $DIR/return-elided-lifetime.rs:13:28
@@ -45,7 +59,7 @@ LL | fn f2_(a: i32, b: i32) -> (&i32, &i32) { loop {} }
| expected named lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
-help: consider using the `'static` lifetime
+help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
|
LL | fn f2_(a: i32, b: i32) -> (&'static i32, &'static i32) { loop {} }
| +++++++ +++++++
diff --git a/tests/ui/suggestions/shadowed-lplace-method-2.stderr b/tests/ui/suggestions/shadowed-lplace-method-2.stderr
index 295636098..088da83f5 100644
--- a/tests/ui/suggestions/shadowed-lplace-method-2.stderr
+++ b/tests/ui/suggestions/shadowed-lplace-method-2.stderr
@@ -20,6 +20,6 @@ help: try wrapping the expression in `X`
LL | *x.foo(0) = X { x: () };
| ++++++ +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/shadowed-lplace-method.stderr b/tests/ui/suggestions/shadowed-lplace-method.stderr
index 33824c4cb..3e49716b0 100644
--- a/tests/ui/suggestions/shadowed-lplace-method.stderr
+++ b/tests/ui/suggestions/shadowed-lplace-method.stderr
@@ -21,6 +21,6 @@ help: you might have meant to call the other method; you can use the fully-quali
LL | *std::cell::RefCell::<_>::borrow_mut(&rc) = false;
| +++++++++++++++++++++++++++++++++++++ ~
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/silenced-binding-typo.stderr b/tests/ui/suggestions/silenced-binding-typo.stderr
index 9c0e6e265..8dbd94208 100644
--- a/tests/ui/suggestions/silenced-binding-typo.stderr
+++ b/tests/ui/suggestions/silenced-binding-typo.stderr
@@ -9,6 +9,6 @@ help: a local variable with a similar name exists, consider changing it
LL | let x = 42;
| ~
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0425`.
diff --git a/tests/ui/suggestions/sugg-else-for-closure.stderr b/tests/ui/suggestions/sugg-else-for-closure.stderr
index 80ad3f9e4..fda5ac4e4 100644
--- a/tests/ui/suggestions/sugg-else-for-closure.stderr
+++ b/tests/ui/suggestions/sugg-else-for-closure.stderr
@@ -22,6 +22,6 @@ help: try calling `unwrap_or_else` instead
LL | let _s = y.unwrap_or_else(|| x.split('.').nth(1).unwrap());
| +++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/sugg_with_positional_args_and_debug_fmt.stderr b/tests/ui/suggestions/sugg_with_positional_args_and_debug_fmt.stderr
index 850f69f2d..be458f3bd 100644
--- a/tests/ui/suggestions/sugg_with_positional_args_and_debug_fmt.stderr
+++ b/tests/ui/suggestions/sugg_with_positional_args_and_debug_fmt.stderr
@@ -17,5 +17,5 @@ help: use the named argument by name to avoid ambiguity
LL | println!("hello {world:?}", world = "world");
| +++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/suggest-assoc-fn-call-deref.stderr b/tests/ui/suggestions/suggest-assoc-fn-call-deref.stderr
index 00fb96f03..a30b78692 100644
--- a/tests/ui/suggestions/suggest-assoc-fn-call-deref.stderr
+++ b/tests/ui/suggestions/suggest-assoc-fn-call-deref.stderr
@@ -14,6 +14,6 @@ note: the candidate is defined in an impl for the type `Foo<T>`
LL | fn test() -> i32 { 1 }
| ^^^^^^^^^^^^^^^^
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/suggest-assoc-fn-call-with-turbofish-placeholder.stderr b/tests/ui/suggestions/suggest-assoc-fn-call-with-turbofish-placeholder.stderr
index c247e73b3..6e4c77dea 100644
--- a/tests/ui/suggestions/suggest-assoc-fn-call-with-turbofish-placeholder.stderr
+++ b/tests/ui/suggestions/suggest-assoc-fn-call-with-turbofish-placeholder.stderr
@@ -17,6 +17,6 @@ note: the candidate is defined in an impl for the type `GenericAssocMethod<T>`
LL | fn default_hello() {}
| ^^^^^^^^^^^^^^^^^^
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/suggest-assoc-fn-call-with-turbofish-through-deref.stderr b/tests/ui/suggestions/suggest-assoc-fn-call-with-turbofish-through-deref.stderr
index 7c9f0b6c2..1bc259294 100644
--- a/tests/ui/suggestions/suggest-assoc-fn-call-with-turbofish-through-deref.stderr
+++ b/tests/ui/suggestions/suggest-assoc-fn-call-with-turbofish-through-deref.stderr
@@ -14,6 +14,6 @@ note: the candidate is defined in an impl for the type `HasAssocMethod`
LL | fn hello() {}
| ^^^^^^^^^^
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.fixed b/tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.fixed
new file mode 100644
index 000000000..61f06d802
--- /dev/null
+++ b/tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.fixed
@@ -0,0 +1,30 @@
+// run-rustfix
+
+struct A {}
+
+impl A {
+ fn hello(_a: i32) {}
+ fn test(_a: Self, _b: i32) {}
+}
+
+struct B<T> {
+ _b: T
+}
+impl<T> B<T> {
+ fn hello(_a: i32) {}
+ fn test(_a: Self, _b: i32) {}
+}
+
+fn main() {
+ let _a = A {};
+ A::hello(1);
+ //~^ ERROR no method named `hello` found
+ A::test(_a, 1);
+ //~^ ERROR no method named `test` found
+
+ let _b = B {_b: ""};
+ B::<&str>::hello(1);
+ //~^ ERROR no method named `hello` found
+ B::<&str>::test(_b, 1);
+ //~^ ERROR no method named `test` found
+}
diff --git a/tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.rs b/tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.rs
new file mode 100644
index 000000000..07e614f0c
--- /dev/null
+++ b/tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.rs
@@ -0,0 +1,30 @@
+// run-rustfix
+
+struct A {}
+
+impl A {
+ fn hello(_a: i32) {}
+ fn test(_a: Self, _b: i32) {}
+}
+
+struct B<T> {
+ _b: T
+}
+impl<T> B<T> {
+ fn hello(_a: i32) {}
+ fn test(_a: Self, _b: i32) {}
+}
+
+fn main() {
+ let _a = A {};
+ _a.hello(1);
+ //~^ ERROR no method named `hello` found
+ _a.test(1);
+ //~^ ERROR no method named `test` found
+
+ let _b = B {_b: ""};
+ _b.hello(1);
+ //~^ ERROR no method named `hello` found
+ _b.test(1);
+ //~^ ERROR no method named `test` found
+}
diff --git a/tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.stderr b/tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.stderr
new file mode 100644
index 000000000..793595784
--- /dev/null
+++ b/tests/ui/suggestions/suggest-assoc-fn-call-without-receiver.stderr
@@ -0,0 +1,79 @@
+error[E0599]: no method named `hello` found for struct `A` in the current scope
+ --> $DIR/suggest-assoc-fn-call-without-receiver.rs:20:8
+ |
+LL | struct A {}
+ | -------- method `hello` not found for this struct
+...
+LL | _a.hello(1);
+ | ---^^^^^---
+ | | |
+ | | this is an associated function, not a method
+ | help: use associated function syntax instead: `A::hello(1)`
+ |
+ = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
+note: the candidate is defined in an impl for the type `A`
+ --> $DIR/suggest-assoc-fn-call-without-receiver.rs:6:5
+ |
+LL | fn hello(_a: i32) {}
+ | ^^^^^^^^^^^^^^^^^
+
+error[E0599]: no method named `test` found for struct `A` in the current scope
+ --> $DIR/suggest-assoc-fn-call-without-receiver.rs:22:8
+ |
+LL | struct A {}
+ | -------- method `test` not found for this struct
+...
+LL | _a.test(1);
+ | ---^^^^---
+ | | |
+ | | this is an associated function, not a method
+ | help: use associated function syntax instead: `A::test(_a, 1)`
+ |
+ = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
+note: the candidate is defined in an impl for the type `A`
+ --> $DIR/suggest-assoc-fn-call-without-receiver.rs:7:5
+ |
+LL | fn test(_a: Self, _b: i32) {}
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error[E0599]: no method named `hello` found for struct `B<&str>` in the current scope
+ --> $DIR/suggest-assoc-fn-call-without-receiver.rs:26:8
+ |
+LL | struct B<T> {
+ | ----------- method `hello` not found for this struct
+...
+LL | _b.hello(1);
+ | ---^^^^^---
+ | | |
+ | | this is an associated function, not a method
+ | help: use associated function syntax instead: `B::<&str>::hello(1)`
+ |
+ = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
+note: the candidate is defined in an impl for the type `B<T>`
+ --> $DIR/suggest-assoc-fn-call-without-receiver.rs:14:5
+ |
+LL | fn hello(_a: i32) {}
+ | ^^^^^^^^^^^^^^^^^
+
+error[E0599]: no method named `test` found for struct `B<&str>` in the current scope
+ --> $DIR/suggest-assoc-fn-call-without-receiver.rs:28:8
+ |
+LL | struct B<T> {
+ | ----------- method `test` not found for this struct
+...
+LL | _b.test(1);
+ | ---^^^^---
+ | | |
+ | | this is an associated function, not a method
+ | help: use associated function syntax instead: `B::<&str>::test(_b, 1)`
+ |
+ = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
+note: the candidate is defined in an impl for the type `B<T>`
+ --> $DIR/suggest-assoc-fn-call-without-receiver.rs:15:5
+ |
+LL | fn test(_a: Self, _b: i32) {}
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/suggestions/suggest-box.stderr b/tests/ui/suggestions/suggest-box.stderr
index e5d5ecc0b..58f8774fe 100644
--- a/tests/ui/suggestions/suggest-box.stderr
+++ b/tests/ui/suggestions/suggest-box.stderr
@@ -21,6 +21,6 @@ LL | Ok(())
LL ~ });
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/suggest-closure-return-type-1.stderr b/tests/ui/suggestions/suggest-closure-return-type-1.stderr
index f4c2eb7ff..be473d3cf 100644
--- a/tests/ui/suggestions/suggest-closure-return-type-1.stderr
+++ b/tests/ui/suggestions/suggest-closure-return-type-1.stderr
@@ -9,6 +9,6 @@ help: try giving this closure an explicit return type
LL | unbound_drop(|| -> [_; 0] { [] });
| ~~~~~~
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0282`.
diff --git a/tests/ui/suggestions/suggest-closure-return-type-2.stderr b/tests/ui/suggestions/suggest-closure-return-type-2.stderr
index 88bf26304..f6c2a79b6 100644
--- a/tests/ui/suggestions/suggest-closure-return-type-2.stderr
+++ b/tests/ui/suggestions/suggest-closure-return-type-2.stderr
@@ -9,6 +9,6 @@ help: try giving this closure an explicit return type
LL | unbound_drop(|| -> [_; 0] { [] })
| +++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0282`.
diff --git a/tests/ui/suggestions/suggest-closure-return-type-3.stderr b/tests/ui/suggestions/suggest-closure-return-type-3.stderr
index bc4107528..d02e20eb7 100644
--- a/tests/ui/suggestions/suggest-closure-return-type-3.stderr
+++ b/tests/ui/suggestions/suggest-closure-return-type-3.stderr
@@ -9,6 +9,6 @@ help: try giving this closure an explicit return type
LL | unbound_drop(|| -> [_; 0] { [] });
| +++++++++++ +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0282`.
diff --git a/tests/ui/suggestions/suggest-dereferencing-index.stderr b/tests/ui/suggestions/suggest-dereferencing-index.stderr
index adf013399..2316acbe9 100644
--- a/tests/ui/suggestions/suggest-dereferencing-index.stderr
+++ b/tests/ui/suggestions/suggest-dereferencing-index.stderr
@@ -8,11 +8,13 @@ LL | let one_item_please: i32 = [1, 2, 3][i];
= help: the trait `SliceIndex<[{integer}]>` is implemented for `usize`
= help: for that trait implementation, expected `usize`, found `&usize`
= note: required for `[{integer}]` to implement `Index<&usize>`
+ = note: 1 redundant requirement hidden
+ = note: required for `[{integer}; 3]` to implement `Index<&usize>`
help: dereference this index
|
LL | let one_item_please: i32 = [1, 2, 3][*i];
| +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/suggest-field-through-deref.fixed b/tests/ui/suggestions/suggest-field-through-deref.fixed
new file mode 100644
index 000000000..07ba3aa91
--- /dev/null
+++ b/tests/ui/suggestions/suggest-field-through-deref.fixed
@@ -0,0 +1,21 @@
+// run-rustfix
+#![allow(dead_code)]
+use std::sync::Arc;
+struct S {
+ long_name: (),
+ foo: (),
+}
+fn main() {
+ let x = Arc::new(S { long_name: (), foo: () });
+ let _ = x.long_name; //~ ERROR no field `longname`
+ let y = S { long_name: (), foo: () };
+ let _ = y.long_name; //~ ERROR no field `longname`
+ let a = Some(Arc::new(S { long_name: (), foo: () }));
+ let _ = a.unwrap().long_name; //~ ERROR no field `longname`
+ let b = Some(S { long_name: (), foo: () });
+ let _ = b.unwrap().long_name; //~ ERROR no field `long_name`
+ let c = Ok::<_, ()>(Arc::new(S { long_name: (), foo: () }));
+ let _ = c.unwrap().long_name; //~ ERROR no field `longname`
+ let d = Ok::<_, ()>(S { long_name: (), foo: () });
+ let _ = d.unwrap().long_name; //~ ERROR no field `long_name`
+}
diff --git a/tests/ui/suggestions/suggest-field-through-deref.rs b/tests/ui/suggestions/suggest-field-through-deref.rs
new file mode 100644
index 000000000..6e24b425e
--- /dev/null
+++ b/tests/ui/suggestions/suggest-field-through-deref.rs
@@ -0,0 +1,21 @@
+// run-rustfix
+#![allow(dead_code)]
+use std::sync::Arc;
+struct S {
+ long_name: (),
+ foo: (),
+}
+fn main() {
+ let x = Arc::new(S { long_name: (), foo: () });
+ let _ = x.longname; //~ ERROR no field `longname`
+ let y = S { long_name: (), foo: () };
+ let _ = y.longname; //~ ERROR no field `longname`
+ let a = Some(Arc::new(S { long_name: (), foo: () }));
+ let _ = a.longname; //~ ERROR no field `longname`
+ let b = Some(S { long_name: (), foo: () });
+ let _ = b.long_name; //~ ERROR no field `long_name`
+ let c = Ok::<_, ()>(Arc::new(S { long_name: (), foo: () }));
+ let _ = c.longname; //~ ERROR no field `longname`
+ let d = Ok::<_, ()>(S { long_name: (), foo: () });
+ let _ = d.long_name; //~ ERROR no field `long_name`
+}
diff --git a/tests/ui/suggestions/suggest-field-through-deref.stderr b/tests/ui/suggestions/suggest-field-through-deref.stderr
new file mode 100644
index 000000000..cc9fe2044
--- /dev/null
+++ b/tests/ui/suggestions/suggest-field-through-deref.stderr
@@ -0,0 +1,69 @@
+error[E0609]: no field `longname` on type `Arc<S>`
+ --> $DIR/suggest-field-through-deref.rs:10:15
+ |
+LL | let _ = x.longname;
+ | ^^^^^^^^ unknown field
+ |
+help: a field with a similar name exists
+ |
+LL | let _ = x.long_name;
+ | ~~~~~~~~~
+
+error[E0609]: no field `longname` on type `S`
+ --> $DIR/suggest-field-through-deref.rs:12:15
+ |
+LL | let _ = y.longname;
+ | ^^^^^^^^ unknown field
+ |
+help: a field with a similar name exists
+ |
+LL | let _ = y.long_name;
+ | ~~~~~~~~~
+
+error[E0609]: no field `longname` on type `Option<Arc<S>>`
+ --> $DIR/suggest-field-through-deref.rs:14:15
+ |
+LL | let _ = a.longname;
+ | ^^^^^^^^ unknown field
+ |
+help: a field with a similar name exists
+ |
+LL | let _ = a.unwrap().long_name;
+ | ~~~~~~~~~~~~~~~~~~
+
+error[E0609]: no field `long_name` on type `Option<S>`
+ --> $DIR/suggest-field-through-deref.rs:16:15
+ |
+LL | let _ = b.long_name;
+ | ^^^^^^^^^ unknown field
+ |
+help: one of the expressions' fields has a field of the same name
+ |
+LL | let _ = b.unwrap().long_name;
+ | +++++++++
+
+error[E0609]: no field `longname` on type `Result<Arc<S>, ()>`
+ --> $DIR/suggest-field-through-deref.rs:18:15
+ |
+LL | let _ = c.longname;
+ | ^^^^^^^^ unknown field
+ |
+help: a field with a similar name exists
+ |
+LL | let _ = c.unwrap().long_name;
+ | ~~~~~~~~~~~~~~~~~~
+
+error[E0609]: no field `long_name` on type `Result<S, ()>`
+ --> $DIR/suggest-field-through-deref.rs:20:15
+ |
+LL | let _ = d.long_name;
+ | ^^^^^^^^^ unknown field
+ |
+help: one of the expressions' fields has a field of the same name
+ |
+LL | let _ = d.unwrap().long_name;
+ | +++++++++
+
+error: aborting due to 6 previous errors
+
+For more information about this error, try `rustc --explain E0609`.
diff --git a/tests/ui/suggestions/suggest-fn-ptr-for-fn-item-in-fn-ret.stderr b/tests/ui/suggestions/suggest-fn-ptr-for-fn-item-in-fn-ret.stderr
index 347a03852..bf7790e23 100644
--- a/tests/ui/suggestions/suggest-fn-ptr-for-fn-item-in-fn-ret.stderr
+++ b/tests/ui/suggestions/suggest-fn-ptr-for-fn-item-in-fn-ret.stderr
@@ -7,6 +7,6 @@ LL | fn bar() -> _ { Wrapper(foo) }
| not allowed in type signatures
| help: replace with the correct return type: `Wrapper<fn()>`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0121`.
diff --git a/tests/ui/suggestions/suggest-full-enum-variant-for-local-module.stderr b/tests/ui/suggestions/suggest-full-enum-variant-for-local-module.stderr
index 3fb3047d8..866162bab 100644
--- a/tests/ui/suggestions/suggest-full-enum-variant-for-local-module.stderr
+++ b/tests/ui/suggestions/suggest-full-enum-variant-for-local-module.stderr
@@ -13,6 +13,6 @@ help: try wrapping the expression in `option::O::Some`
LL | let _: option::O<()> = option::O::Some(());
| ++++++++++++++++ +
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/suggest-impl-trait-lifetime.stderr b/tests/ui/suggestions/suggest-impl-trait-lifetime.stderr
index 1660db1aa..de2485b7b 100644
--- a/tests/ui/suggestions/suggest-impl-trait-lifetime.stderr
+++ b/tests/ui/suggestions/suggest-impl-trait-lifetime.stderr
@@ -12,6 +12,6 @@ help: consider adding an explicit lifetime bound
LL | fn foo(d: impl Debug + 'static) {
| +++++++++
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0310`.
diff --git a/tests/ui/suggestions/suggest-let-for-assignment.fixed b/tests/ui/suggestions/suggest-let-for-assignment.fixed
index 3a25e25ee..76dc1dad8 100644
--- a/tests/ui/suggestions/suggest-let-for-assignment.fixed
+++ b/tests/ui/suggestions/suggest-let-for-assignment.fixed
@@ -7,6 +7,12 @@ fn main() {
let x = "x"; //~ ERROR cannot find value `x` in this scope
println!("x: {}", x); //~ ERROR cannot find value `x` in this scope
+ let some_variable = 6; //~ cannot find value `let_some_variable` in this scope
+ println!("some_variable: {}", some_variable); //~ ERROR cannot find value `some_variable` in this scope
+
+ let other_variable = 6; //~ cannot find value `letother_variable` in this scope
+ println!("other_variable: {}", other_variable); //~ ERROR cannot find value `other_variable` in this scope
+
if x == "x" {
//~^ ERROR cannot find value `x` in this scope
println!("x is 1");
diff --git a/tests/ui/suggestions/suggest-let-for-assignment.rs b/tests/ui/suggestions/suggest-let-for-assignment.rs
index 67705fe06..f1edf65a7 100644
--- a/tests/ui/suggestions/suggest-let-for-assignment.rs
+++ b/tests/ui/suggestions/suggest-let-for-assignment.rs
@@ -7,6 +7,12 @@ fn main() {
x = "x"; //~ ERROR cannot find value `x` in this scope
println!("x: {}", x); //~ ERROR cannot find value `x` in this scope
+ let_some_variable = 6; //~ cannot find value `let_some_variable` in this scope
+ println!("some_variable: {}", some_variable); //~ ERROR cannot find value `some_variable` in this scope
+
+ letother_variable = 6; //~ cannot find value `letother_variable` in this scope
+ println!("other_variable: {}", other_variable); //~ ERROR cannot find value `other_variable` in this scope
+
if x == "x" {
//~^ ERROR cannot find value `x` in this scope
println!("x is 1");
diff --git a/tests/ui/suggestions/suggest-let-for-assignment.stderr b/tests/ui/suggestions/suggest-let-for-assignment.stderr
index 3f6a3da4b..8d97dbeb1 100644
--- a/tests/ui/suggestions/suggest-let-for-assignment.stderr
+++ b/tests/ui/suggestions/suggest-let-for-assignment.stderr
@@ -32,14 +32,48 @@ error[E0425]: cannot find value `x` in this scope
LL | println!("x: {}", x);
| ^ not found in this scope
+error[E0425]: cannot find value `let_some_variable` in this scope
+ --> $DIR/suggest-let-for-assignment.rs:10:5
+ |
+LL | let_some_variable = 6;
+ | ^^^^^^^^^^^^^^^^^
+ |
+help: you might have meant to introduce a new binding
+ |
+LL | let some_variable = 6;
+ | ~~~~~~~~~~~~~~~~~
+
+error[E0425]: cannot find value `some_variable` in this scope
+ --> $DIR/suggest-let-for-assignment.rs:11:35
+ |
+LL | println!("some_variable: {}", some_variable);
+ | ^^^^^^^^^^^^^ not found in this scope
+
+error[E0425]: cannot find value `letother_variable` in this scope
+ --> $DIR/suggest-let-for-assignment.rs:13:5
+ |
+LL | letother_variable = 6;
+ | ^^^^^^^^^^^^^^^^^
+ |
+help: you might have meant to introduce a new binding
+ |
+LL | let other_variable = 6;
+ | ~~~~~~~~~~~~~~~~~~
+
+error[E0425]: cannot find value `other_variable` in this scope
+ --> $DIR/suggest-let-for-assignment.rs:14:36
+ |
+LL | println!("other_variable: {}", other_variable);
+ | ^^^^^^^^^^^^^^ not found in this scope
+
error[E0425]: cannot find value `x` in this scope
- --> $DIR/suggest-let-for-assignment.rs:10:8
+ --> $DIR/suggest-let-for-assignment.rs:16:8
|
LL | if x == "x" {
| ^ not found in this scope
error[E0425]: cannot find value `y` in this scope
- --> $DIR/suggest-let-for-assignment.rs:15:5
+ --> $DIR/suggest-let-for-assignment.rs:21:5
|
LL | y = 1 + 2;
| ^
@@ -50,11 +84,11 @@ LL | let y = 1 + 2;
| +++
error[E0425]: cannot find value `y` in this scope
- --> $DIR/suggest-let-for-assignment.rs:16:23
+ --> $DIR/suggest-let-for-assignment.rs:22:23
|
LL | println!("y: {}", y);
| ^ not found in this scope
-error: aborting due to 7 previous errors
+error: aborting due to 11 previous errors
For more information about this error, try `rustc --explain E0425`.
diff --git a/tests/ui/suggestions/suggest-mut-method-for-loop-closure.stderr b/tests/ui/suggestions/suggest-mut-method-for-loop-closure.stderr
index 8a2df8d7c..0bd286e0a 100644
--- a/tests/ui/suggestions/suggest-mut-method-for-loop-closure.stderr
+++ b/tests/ui/suggestions/suggest-mut-method-for-loop-closure.stderr
@@ -10,6 +10,6 @@ LL | for mut t in buzz.values() {
LL | t.v += 1;
| ^^^^^^^^ `t` is a `&` reference, so the data it refers to cannot be written
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0594`.
diff --git a/tests/ui/suggestions/suggest-mut-method-for-loop-hashmap.stderr b/tests/ui/suggestions/suggest-mut-method-for-loop-hashmap.stderr
index c442ed637..1be14aa8f 100644
--- a/tests/ui/suggestions/suggest-mut-method-for-loop-hashmap.stderr
+++ b/tests/ui/suggestions/suggest-mut-method-for-loop-hashmap.stderr
@@ -10,6 +10,6 @@ LL | for (_k, v) in map.iter() {
LL | v.v += 1;
| ^^^^^^^^ `v` is a `&` reference, so the data it refers to cannot be written
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0594`.
diff --git a/tests/ui/suggestions/suggest-mut-method-for-loop.stderr b/tests/ui/suggestions/suggest-mut-method-for-loop.stderr
index 3eb9e1031..37bb25b30 100644
--- a/tests/ui/suggestions/suggest-mut-method-for-loop.stderr
+++ b/tests/ui/suggestions/suggest-mut-method-for-loop.stderr
@@ -10,6 +10,6 @@ LL | for mut t in buzz.values() {
LL | t.v += 1;
| ^^^^^^^^ `t` is a `&` reference, so the data it refers to cannot be written
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0594`.
diff --git a/tests/ui/suggestions/suggest-pin-macro.stderr b/tests/ui/suggestions/suggest-pin-macro.stderr
index 1220cf650..a761a454a 100644
--- a/tests/ui/suggestions/suggest-pin-macro.stderr
+++ b/tests/ui/suggestions/suggest-pin-macro.stderr
@@ -14,6 +14,6 @@ LL | struct Test {
note: required by a bound in `Pin::<&'a mut T>::get_mut`
--> $SRC_DIR/core/src/pin.rs:LL:COL
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/suggest-remove-refs-1.stderr b/tests/ui/suggestions/suggest-remove-refs-1.stderr
index 387770535..523f78dff 100644
--- a/tests/ui/suggestions/suggest-remove-refs-1.stderr
+++ b/tests/ui/suggestions/suggest-remove-refs-1.stderr
@@ -12,6 +12,6 @@ LL - for (i, _) in &v.iter().enumerate() {
LL + for (i, _) in v.iter().enumerate() {
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/suggest-remove-refs-2.stderr b/tests/ui/suggestions/suggest-remove-refs-2.stderr
index 1632b2abb..bbe3261e1 100644
--- a/tests/ui/suggestions/suggest-remove-refs-2.stderr
+++ b/tests/ui/suggestions/suggest-remove-refs-2.stderr
@@ -12,6 +12,6 @@ LL - for (i, _) in & & & & &v.iter().enumerate() {
LL + for (i, _) in v.iter().enumerate() {
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/suggest-remove-refs-3.stderr b/tests/ui/suggestions/suggest-remove-refs-3.stderr
index 7bf421a77..a3e142563 100644
--- a/tests/ui/suggestions/suggest-remove-refs-3.stderr
+++ b/tests/ui/suggestions/suggest-remove-refs-3.stderr
@@ -16,6 +16,6 @@ LL - for (i, _) in & & &
LL + for (i, _) in v
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/suggest-remove-refs-4.stderr b/tests/ui/suggestions/suggest-remove-refs-4.stderr
index e4ad17e06..ed9fc2dd2 100644
--- a/tests/ui/suggestions/suggest-remove-refs-4.stderr
+++ b/tests/ui/suggestions/suggest-remove-refs-4.stderr
@@ -12,6 +12,6 @@ LL ~ let foo = [1,2,3].iter();
LL ~ for _i in foo {}
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/suggestions/suggest-ret-on-async-w-late.stderr b/tests/ui/suggestions/suggest-ret-on-async-w-late.stderr
index 352f6da36..0da0241fe 100644
--- a/tests/ui/suggestions/suggest-ret-on-async-w-late.stderr
+++ b/tests/ui/suggestions/suggest-ret-on-async-w-late.stderr
@@ -6,6 +6,6 @@ LL | async fn ice(_: &i32) {
LL | true
| ^^^^ expected `()`, found `bool`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/suggestions/suggest-semicolon-for-fn-in-extern-block.stderr b/tests/ui/suggestions/suggest-semicolon-for-fn-in-extern-block.stderr
index c5df72c4a..12da91c20 100644
--- a/tests/ui/suggestions/suggest-semicolon-for-fn-in-extern-block.stderr
+++ b/tests/ui/suggestions/suggest-semicolon-for-fn-in-extern-block.stderr
@@ -6,5 +6,5 @@ LL | fn foo()
LL | }
| - unexpected token
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/suggest-split-at-mut.stderr b/tests/ui/suggestions/suggest-split-at-mut.stderr
index bb1851383..c42f09e32 100644
--- a/tests/ui/suggestions/suggest-split-at-mut.stderr
+++ b/tests/ui/suggestions/suggest-split-at-mut.stderr
@@ -11,6 +11,6 @@ LL | *a = 5;
= help: consider using `.split_at_mut(position)` or similar method to obtain two mutable non-overlapping sub-slices
= help: consider using `.swap(index_1, index_2)` to swap elements at the specified indices
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0499`.
diff --git a/tests/ui/suggestions/suggest-trait-in-ufcs-in-hrtb.stderr b/tests/ui/suggestions/suggest-trait-in-ufcs-in-hrtb.stderr
index 0d1eed67c..c0f0c4142 100644
--- a/tests/ui/suggestions/suggest-trait-in-ufcs-in-hrtb.stderr
+++ b/tests/ui/suggestions/suggest-trait-in-ufcs-in-hrtb.stderr
@@ -4,6 +4,6 @@ error[E0223]: ambiguous associated type
LL | impl<S> Foo for Bar<S> where for<'a> <&'a S>::Item: Foo {}
| ^^^^^^^^^^^^^ help: use fully-qualified syntax: `<&'a S as IntoIterator>::Item`
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0223`.
diff --git a/tests/ui/suggestions/suggest-tryinto-edition-change.stderr b/tests/ui/suggestions/suggest-tryinto-edition-change.stderr
index 671f5efdd..057e37dbe 100644
--- a/tests/ui/suggestions/suggest-tryinto-edition-change.stderr
+++ b/tests/ui/suggestions/suggest-tryinto-edition-change.stderr
@@ -4,8 +4,8 @@ error[E0433]: failed to resolve: use of undeclared type `TryFrom`
LL | let _i: i16 = TryFrom::try_from(0_i32).unwrap();
| ^^^^^^^ use of undeclared type `TryFrom`
|
- = note: 'std::convert::TryFrom' is included in the prelude starting in Edition 2021
= note: 'core::convert::TryFrom' is included in the prelude starting in Edition 2021
+ = note: 'std::convert::TryFrom' is included in the prelude starting in Edition 2021
help: consider importing one of these items
|
LL + use core::convert::TryFrom;
@@ -19,8 +19,8 @@ error[E0433]: failed to resolve: use of undeclared type `TryInto`
LL | let _i: i16 = TryInto::try_into(0_i32).unwrap();
| ^^^^^^^ use of undeclared type `TryInto`
|
- = note: 'std::convert::TryInto' is included in the prelude starting in Edition 2021
= note: 'core::convert::TryInto' is included in the prelude starting in Edition 2021
+ = note: 'std::convert::TryInto' is included in the prelude starting in Edition 2021
help: consider importing one of these items
|
LL + use core::convert::TryInto;
@@ -34,8 +34,8 @@ error[E0433]: failed to resolve: use of undeclared type `FromIterator`
LL | let _v: Vec<_> = FromIterator::from_iter(&[1]);
| ^^^^^^^^^^^^ use of undeclared type `FromIterator`
|
- = note: 'std::iter::FromIterator' is included in the prelude starting in Edition 2021
= note: 'core::iter::FromIterator' is included in the prelude starting in Edition 2021
+ = note: 'std::iter::FromIterator' is included in the prelude starting in Edition 2021
help: a trait with a similar name exists
|
LL | let _v: Vec<_> = IntoIterator::from_iter(&[1]);
diff --git a/tests/ui/suggestions/suggest_print_over_printf.stderr b/tests/ui/suggestions/suggest_print_over_printf.stderr
index 1214bec16..8a7974513 100644
--- a/tests/ui/suggestions/suggest_print_over_printf.stderr
+++ b/tests/ui/suggestions/suggest_print_over_printf.stderr
@@ -9,6 +9,6 @@ help: you may have meant to use the `print` macro
LL | print!("%d", x);
| ~~~~~~
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0425`.
diff --git a/tests/ui/suggestions/too-many-field-suggestions.stderr b/tests/ui/suggestions/too-many-field-suggestions.stderr
index 63ad6fdb1..ac5c8cb60 100644
--- a/tests/ui/suggestions/too-many-field-suggestions.stderr
+++ b/tests/ui/suggestions/too-many-field-suggestions.stderr
@@ -25,7 +25,6 @@ error[E0609]: no field `field` on type `Thing`
LL | t.field;
| ^^^^^ unknown field
|
- = note: available fields are: `a0`, `a1`, `a2`, `a3`, `a4` ... and 5 others
help: some of the expressions' fields have a field of the same name
|
LL | t.a0.field;
diff --git a/tests/ui/suggestions/type-ascription-and-other-error.stderr b/tests/ui/suggestions/type-ascription-and-other-error.stderr
index eadf634bb..4efddca4b 100644
--- a/tests/ui/suggestions/type-ascription-and-other-error.stderr
+++ b/tests/ui/suggestions/type-ascription-and-other-error.stderr
@@ -4,5 +4,5 @@ error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found
LL | not rust;
| ^^^^ expected one of 8 possible tokens
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/type-ascription-instead-of-let.stderr b/tests/ui/suggestions/type-ascription-instead-of-let.stderr
index 065b1f4d3..939990d74 100644
--- a/tests/ui/suggestions/type-ascription-instead-of-let.stderr
+++ b/tests/ui/suggestions/type-ascription-instead-of-let.stderr
@@ -9,5 +9,5 @@ help: you might have meant to introduce a new binding
LL | let temp: i32 = fun(5i32);
| +++
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/type-ascription-instead-of-method.stderr b/tests/ui/suggestions/type-ascription-instead-of-method.stderr
index b3799101c..3242b028d 100644
--- a/tests/ui/suggestions/type-ascription-instead-of-method.stderr
+++ b/tests/ui/suggestions/type-ascription-instead-of-method.stderr
@@ -6,5 +6,5 @@ LL | let _ = Box:new("foo".to_string());
|
= note: if you meant to annotate an expression with a type, the type ascription syntax has been removed, see issue #101728 <https://github.com/rust-lang/rust/issues/101728>
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/type-ascription-instead-of-path-2.stderr b/tests/ui/suggestions/type-ascription-instead-of-path-2.stderr
index 43d00591e..ba0682cda 100644
--- a/tests/ui/suggestions/type-ascription-instead-of-path-2.stderr
+++ b/tests/ui/suggestions/type-ascription-instead-of-path-2.stderr
@@ -10,5 +10,5 @@ help: maybe write a path separator here
LL | let _ = vec![Ok(2)].into_iter().collect::<Result<Vec<_>,_>>()?;
| ~~
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/type-ascription-instead-of-path.stderr b/tests/ui/suggestions/type-ascription-instead-of-path.stderr
index 849630218..566b036e5 100644
--- a/tests/ui/suggestions/type-ascription-instead-of-path.stderr
+++ b/tests/ui/suggestions/type-ascription-instead-of-path.stderr
@@ -6,5 +6,5 @@ LL | std:io::stdin();
|
= note: if you meant to annotate an expression with a type, the type ascription syntax has been removed, see issue #101728 <https://github.com/rust-lang/rust/issues/101728>
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/type-ascription-instead-of-variant.stderr b/tests/ui/suggestions/type-ascription-instead-of-variant.stderr
index 11d0f5f52..6fea7f940 100644
--- a/tests/ui/suggestions/type-ascription-instead-of-variant.stderr
+++ b/tests/ui/suggestions/type-ascription-instead-of-variant.stderr
@@ -6,5 +6,5 @@ LL | let _ = Option:Some("");
|
= note: if you meant to annotate an expression with a type, the type ascription syntax has been removed, see issue #101728 <https://github.com/rust-lang/rust/issues/101728>
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/type-mismatch-struct-field-shorthand-2.stderr b/tests/ui/suggestions/type-mismatch-struct-field-shorthand-2.stderr
index 12466868f..fb3573ee2 100644
--- a/tests/ui/suggestions/type-mismatch-struct-field-shorthand-2.stderr
+++ b/tests/ui/suggestions/type-mismatch-struct-field-shorthand-2.stderr
@@ -24,7 +24,12 @@ error[E0560]: struct `RGB` has no field named `c`
--> $DIR/type-mismatch-struct-field-shorthand-2.rs:5:25
|
LL | let _ = RGB { r, g, c };
- | ^ help: a field with a similar name exists: `b`
+ | ^ unknown field
+ |
+help: a field with a similar name exists
+ |
+LL | let _ = RGB { r, g, b };
+ | ~
error: aborting due to 3 previous errors
diff --git a/tests/ui/suggestions/undeclared-module-alloc.stderr b/tests/ui/suggestions/undeclared-module-alloc.stderr
index 39169dfa9..a43954649 100644
--- a/tests/ui/suggestions/undeclared-module-alloc.stderr
+++ b/tests/ui/suggestions/undeclared-module-alloc.stderr
@@ -6,6 +6,6 @@ LL | use alloc::rc::Rc;
|
= help: add `extern crate alloc` to use the `alloc` crate
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0433`.
diff --git a/tests/ui/suggestions/use-placement-resolve.stderr b/tests/ui/suggestions/use-placement-resolve.stderr
index 77724e7e2..562e0bc3f 100644
--- a/tests/ui/suggestions/use-placement-resolve.stderr
+++ b/tests/ui/suggestions/use-placement-resolve.stderr
@@ -9,6 +9,6 @@ help: consider importing this trait instead
LL + use std::fmt::Debug;
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0404`.
diff --git a/tests/ui/suggestions/use-placement-typeck.stderr b/tests/ui/suggestions/use-placement-typeck.stderr
index e900e12b7..d8f2d58a2 100644
--- a/tests/ui/suggestions/use-placement-typeck.stderr
+++ b/tests/ui/suggestions/use-placement-typeck.stderr
@@ -16,6 +16,6 @@ help: the following trait is implemented but not in scope; perhaps add a `use` f
LL + use m::Foo;
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0599`.