about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-11-19 13:10:12 +0100
committerGitHub <noreply@github.com>2019-11-19 13:10:12 +0100
commit40deec82bcb9f13829f60a30d1bc3afedb9d5c8c (patch)
treefada756da967ae655bd06e5ccbd9d13e1fca436a
parent49077c59a81cb1361bb41a8197cf5499d54677f0 (diff)
parentc981c994d44801df0a68566467b0bf059f714c3d (diff)
downloadrust-40deec82bcb9f13829f60a30d1bc3afedb9d5c8c.tar.gz
rust-40deec82bcb9f13829f60a30d1bc3afedb9d5c8c.zip
Rollup merge of #66155 - GuillaumeGomez:long-err-explanation-E0594, r=Dylan-DPC
Add long error explanation for E0594

Part of #61137.

r? @Dylan-DPC
-rw-r--r--src/librustc_error_codes/error_codes.rs2
-rw-r--r--src/librustc_error_codes/error_codes/E0594.md23
-rw-r--r--src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr3
-rw-r--r--src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.stderr1
-rw-r--r--src/test/ui/borrowck/borrowck-assign-to-constants.stderr1
-rw-r--r--src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr2
-rw-r--r--src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr3
-rw-r--r--src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr3
-rw-r--r--src/test/ui/borrowck/borrowck-closures-unique.stderr2
-rw-r--r--src/test/ui/borrowck/borrowck-issue-14498.stderr3
-rw-r--r--src/test/ui/borrowck/borrowck-overloaded-index-ref-index.stderr3
-rw-r--r--src/test/ui/borrowck/index-mut-help.stderr3
-rw-r--r--src/test/ui/borrowck/issue-45983.nll.stderr1
-rw-r--r--src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.stderr3
-rw-r--r--src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.migrate.stderr3
-rw-r--r--src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.nll.stderr3
-rw-r--r--src/test/ui/borrowck/mutability-errors.stderr3
-rw-r--r--src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr3
-rw-r--r--src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr3
-rw-r--r--src/test/ui/cannot-mutate-captured-non-mut-var.stderr3
-rw-r--r--src/test/ui/closures/closure-immutable-outer-variable.stderr1
-rw-r--r--src/test/ui/consts/miri_unleashed/mutable_references.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-35937.stderr3
-rw-r--r--src/test/ui/did_you_mean/issue-39544.stderr3
-rw-r--r--src/test/ui/error-codes/E0389.stderr1
-rw-r--r--src/test/ui/error-codes/E0594.stderr1
-rw-r--r--src/test/ui/fn/fn-closure-mutable-capture.stderr1
-rw-r--r--src/test/ui/immut-function-arguments.stderr1
-rw-r--r--src/test/ui/issues/issue-46023.stderr1
-rw-r--r--src/test/ui/issues/issue-46604.stderr3
-rw-r--r--src/test/ui/issues/issue-51244.stderr1
-rw-r--r--src/test/ui/issues/issue-51515.stderr1
-rw-r--r--src/test/ui/mut/mutable-class-fields-2.stderr1
-rw-r--r--src/test/ui/mut/mutable-class-fields.stderr1
-rw-r--r--src/test/ui/nll/closure-captures.stderr3
-rw-r--r--src/test/ui/nll/constant-thread-locals-issue-47053.stderr1
-rw-r--r--src/test/ui/nll/generator-upvar-mutability.stderr1
-rw-r--r--src/test/ui/nll/issue-47388.stderr1
-rw-r--r--src/test/ui/nll/issue-51244.stderr1
-rw-r--r--src/test/ui/nll/issue-57989.stderr3
-rw-r--r--src/test/ui/rfc-2005-default-binding-mode/enum.stderr1
-rw-r--r--src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr1
-rw-r--r--src/test/ui/suggestions/suggest-ref-mut.stderr1
-rw-r--r--src/test/ui/thread-local-mutation.stderr1
-rw-r--r--src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.stderr3
-rw-r--r--src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.stderr1
-rw-r--r--src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.stderr1
47 files changed, 88 insertions, 22 deletions
diff --git a/src/librustc_error_codes/error_codes.rs b/src/librustc_error_codes/error_codes.rs
index 428cecf13a3..9fc375cc7b0 100644
--- a/src/librustc_error_codes/error_codes.rs
+++ b/src/librustc_error_codes/error_codes.rs
@@ -318,6 +318,7 @@ E0590: include_str!("./error_codes/E0590.md"),
 E0591: include_str!("./error_codes/E0591.md"),
 E0592: include_str!("./error_codes/E0592.md"),
 E0593: include_str!("./error_codes/E0593.md"),
+E0594: include_str!("./error_codes/E0594.md"),
 E0595: include_str!("./error_codes/E0595.md"),
 E0596: include_str!("./error_codes/E0596.md"),
 E0597: include_str!("./error_codes/E0597.md"),
@@ -566,7 +567,6 @@ E0744: include_str!("./error_codes/E0744.md"),
 //  E0563, // cannot determine a type for this `impl Trait` removed in 6383de15
 //  E0564, // only named lifetimes are allowed in `impl Trait`,
            // but `{}` was found in the type `{}`
-    E0594, // cannot assign to {}
 //  E0598, // lifetime of {} is too short to guarantee its contents can be...
 //  E0611, // merged into E0616
 //  E0612, // merged into E0609
diff --git a/src/librustc_error_codes/error_codes/E0594.md b/src/librustc_error_codes/error_codes/E0594.md
new file mode 100644
index 00000000000..ad8eb631e63
--- /dev/null
+++ b/src/librustc_error_codes/error_codes/E0594.md
@@ -0,0 +1,23 @@
+A non-mutable value was assigned a value.
+
+Erroneous code example:
+
+```compile_fail,E0594
+struct SolarSystem {
+    earth: i32,
+}
+
+let ss = SolarSystem { earth: 3 };
+ss.earth = 2; // error!
+```
+
+To fix this error, declare `ss` as mutable by using the `mut` keyword:
+
+```
+struct SolarSystem {
+    earth: i32,
+}
+
+let mut ss = SolarSystem { earth: 3 }; // declaring `ss` as mutable
+ss.earth = 2; // ok!
+```
diff --git a/src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr b/src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr
index 17969137a98..097e4c75065 100644
--- a/src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr
+++ b/src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr
@@ -72,4 +72,5 @@ LL |         let _h = to_fn_mut(move || { set(&mut z); to_fn(move || z = 42); })
 
 error: aborting due to 6 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.stderr b/src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.stderr
index 38fcfbfc2a0..d8ccf36852a 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.stderr
+++ b/src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.stderr
@@ -16,3 +16,4 @@ LL |     *s.pointer += 1;
 
 error: aborting due to 2 previous errors
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/borrowck-assign-to-constants.stderr b/src/test/ui/borrowck/borrowck-assign-to-constants.stderr
index 800003caa0f..864d933da12 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-constants.stderr
+++ b/src/test/ui/borrowck/borrowck-assign-to-constants.stderr
@@ -6,3 +6,4 @@ LL |     foo = 6;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr b/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr
index 8115e3150fb..1fdeb812bf8 100644
--- a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr
@@ -27,5 +27,5 @@ LL |     let x:  &mut isize = &mut **t0;
 
 error: aborting due to 3 previous errors
 
-Some errors have detailed explanations: E0502, E0596.
+Some errors have detailed explanations: E0502, E0594, E0596.
 For more information about an error, try `rustc --explain E0502`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr b/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr
index d262c578843..6f2b20285b9 100644
--- a/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr
@@ -112,4 +112,5 @@ LL |     *x.y_mut() = 3;
 
 error: aborting due to 14 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr b/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr
index 8cacc29414d..246a7981ae3 100644
--- a/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr
@@ -56,4 +56,5 @@ LL |     **x = 3;
 
 error: aborting due to 7 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/borrowck-closures-unique.stderr b/src/test/ui/borrowck/borrowck-closures-unique.stderr
index 2ed08b83c58..64c2f419ffa 100644
--- a/src/test/ui/borrowck/borrowck-closures-unique.stderr
+++ b/src/test/ui/borrowck/borrowck-closures-unique.stderr
@@ -50,5 +50,5 @@ LL |     let c1 = |y: &'static mut isize| x = y;
 
 error: aborting due to 4 previous errors
 
-Some errors have detailed explanations: E0500, E0524.
+Some errors have detailed explanations: E0500, E0524, E0594.
 For more information about an error, try `rustc --explain E0500`.
diff --git a/src/test/ui/borrowck/borrowck-issue-14498.stderr b/src/test/ui/borrowck/borrowck-issue-14498.stderr
index fec4c27520c..ae9167757a0 100644
--- a/src/test/ui/borrowck/borrowck-issue-14498.stderr
+++ b/src/test/ui/borrowck/borrowck-issue-14498.stderr
@@ -96,4 +96,5 @@ LL |     drop(p);
 
 error: aborting due to 9 previous errors
 
-For more information about this error, try `rustc --explain E0506`.
+Some errors have detailed explanations: E0506, E0594.
+For more information about an error, try `rustc --explain E0506`.
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.stderr b/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.stderr
index 84fe17d8544..2f92c1ebe5e 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.stderr
+++ b/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.stderr
@@ -31,4 +31,5 @@ LL |     s[2] = 20;
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0502`.
+Some errors have detailed explanations: E0502, E0594.
+For more information about an error, try `rustc --explain E0502`.
diff --git a/src/test/ui/borrowck/index-mut-help.stderr b/src/test/ui/borrowck/index-mut-help.stderr
index 47f2171f88c..baf649f9127 100644
--- a/src/test/ui/borrowck/index-mut-help.stderr
+++ b/src/test/ui/borrowck/index-mut-help.stderr
@@ -24,4 +24,5 @@ LL |     let _ = &mut map["peter"];
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/issue-45983.nll.stderr b/src/test/ui/borrowck/issue-45983.nll.stderr
index dff0b4cebac..49d6c2473f6 100644
--- a/src/test/ui/borrowck/issue-45983.nll.stderr
+++ b/src/test/ui/borrowck/issue-45983.nll.stderr
@@ -18,3 +18,4 @@ LL |     give_any(|y| x = Some(y));
 
 error: aborting due to 2 previous errors
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.stderr b/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.stderr
index 7dfd71c81c3..b7623a54056 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.stderr
+++ b/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.stderr
@@ -84,4 +84,5 @@ LL |         v.y = 2;
 
 error: aborting due to 9 previous errors
 
-For more information about this error, try `rustc --explain E0382`.
+Some errors have detailed explanations: E0382, E0594.
+For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.migrate.stderr b/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.migrate.stderr
index f1d28eed922..1cdcc18632c 100644
--- a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.migrate.stderr
+++ b/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.migrate.stderr
@@ -50,4 +50,5 @@ LL |         || { &mut x.0; };
 
 error: aborting due to 6 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.nll.stderr b/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.nll.stderr
index f1d28eed922..1cdcc18632c 100644
--- a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.nll.stderr
+++ b/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.nll.stderr
@@ -50,4 +50,5 @@ LL |         || { &mut x.0; };
 
 error: aborting due to 6 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/mutability-errors.stderr b/src/test/ui/borrowck/mutability-errors.stderr
index 545de5d0e75..72547a40352 100644
--- a/src/test/ui/borrowck/mutability-errors.stderr
+++ b/src/test/ui/borrowck/mutability-errors.stderr
@@ -375,4 +375,5 @@ LL |     &mut X.0;
 
 error: aborting due to 38 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr b/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr
index 5f346708eb6..0eae2c71e4a 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr
+++ b/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr
@@ -15,4 +15,5 @@ LL |     x.b = 22;
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0381`.
+Some errors have detailed explanations: E0381, E0594.
+For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr b/src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr
index 14f0fee84c9..f55e1a27f47 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr
+++ b/src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr
@@ -15,4 +15,5 @@ LL |     x.0 = 1;
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0381`.
+Some errors have detailed explanations: E0381, E0594.
+For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/cannot-mutate-captured-non-mut-var.stderr b/src/test/ui/cannot-mutate-captured-non-mut-var.stderr
index 2961497ef9f..2d6e83c9e82 100644
--- a/src/test/ui/cannot-mutate-captured-non-mut-var.stderr
+++ b/src/test/ui/cannot-mutate-captured-non-mut-var.stderr
@@ -16,4 +16,5 @@ LL |     to_fn_once(move|| { s.read_to_end(&mut Vec::new()); });
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/closures/closure-immutable-outer-variable.stderr b/src/test/ui/closures/closure-immutable-outer-variable.stderr
index 558c9caeff3..7e60f3cd8ff 100644
--- a/src/test/ui/closures/closure-immutable-outer-variable.stderr
+++ b/src/test/ui/closures/closure-immutable-outer-variable.stderr
@@ -8,3 +8,4 @@ LL |     foo(Box::new(move || y = false) as Box<_>);
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/consts/miri_unleashed/mutable_references.stderr b/src/test/ui/consts/miri_unleashed/mutable_references.stderr
index e8a867307ce..b9c0af33c39 100644
--- a/src/test/ui/consts/miri_unleashed/mutable_references.stderr
+++ b/src/test/ui/consts/miri_unleashed/mutable_references.stderr
@@ -36,3 +36,4 @@ LL |     *OH_YES = 99;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/did_you_mean/issue-35937.stderr b/src/test/ui/did_you_mean/issue-35937.stderr
index 4f9b6a6134d..1f578d18a1c 100644
--- a/src/test/ui/did_you_mean/issue-35937.stderr
+++ b/src/test/ui/did_you_mean/issue-35937.stderr
@@ -24,4 +24,5 @@ LL |     s.x += 1;
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/did_you_mean/issue-39544.stderr b/src/test/ui/did_you_mean/issue-39544.stderr
index dfaaf6b17dc..ce0d697238c 100644
--- a/src/test/ui/did_you_mean/issue-39544.stderr
+++ b/src/test/ui/did_you_mean/issue-39544.stderr
@@ -98,4 +98,5 @@ LL |     *x.0 = 1;
 
 error: aborting due to 12 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/error-codes/E0389.stderr b/src/test/ui/error-codes/E0389.stderr
index 5310367d51a..c47750b6f4e 100644
--- a/src/test/ui/error-codes/E0389.stderr
+++ b/src/test/ui/error-codes/E0389.stderr
@@ -8,3 +8,4 @@ LL |     fancy_ref.num = 6;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/error-codes/E0594.stderr b/src/test/ui/error-codes/E0594.stderr
index c00ec4250a7..f4d96f4e45a 100644
--- a/src/test/ui/error-codes/E0594.stderr
+++ b/src/test/ui/error-codes/E0594.stderr
@@ -6,3 +6,4 @@ LL |     NUM = 20;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/fn/fn-closure-mutable-capture.stderr b/src/test/ui/fn/fn-closure-mutable-capture.stderr
index 8dfae0cbdf2..f7ab56da8de 100644
--- a/src/test/ui/fn/fn-closure-mutable-capture.stderr
+++ b/src/test/ui/fn/fn-closure-mutable-capture.stderr
@@ -12,3 +12,4 @@ LL |     bar(move || x = 1);
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/immut-function-arguments.stderr b/src/test/ui/immut-function-arguments.stderr
index 7871ba52db9..7238dd14433 100644
--- a/src/test/ui/immut-function-arguments.stderr
+++ b/src/test/ui/immut-function-arguments.stderr
@@ -16,3 +16,4 @@ LL |     let _frob = |q: Box<isize>| { *q = 2; };
 
 error: aborting due to 2 previous errors
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issues/issue-46023.stderr b/src/test/ui/issues/issue-46023.stderr
index fac696c6fdc..ca19c250120 100644
--- a/src/test/ui/issues/issue-46023.stderr
+++ b/src/test/ui/issues/issue-46023.stderr
@@ -9,3 +9,4 @@ LL |         x = 1;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issues/issue-46604.stderr b/src/test/ui/issues/issue-46604.stderr
index 961b249daeb..c72f580f243 100644
--- a/src/test/ui/issues/issue-46604.stderr
+++ b/src/test/ui/issues/issue-46604.stderr
@@ -12,4 +12,5 @@ LL |     buf[0]=2;
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0017`.
+Some errors have detailed explanations: E0017, E0594.
+For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/ui/issues/issue-51244.stderr b/src/test/ui/issues/issue-51244.stderr
index 8a7e71e0326..c91083955b8 100644
--- a/src/test/ui/issues/issue-51244.stderr
+++ b/src/test/ui/issues/issue-51244.stderr
@@ -8,3 +8,4 @@ LL |     *my_ref = 0;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issues/issue-51515.stderr b/src/test/ui/issues/issue-51515.stderr
index 827bb8fe2b8..3c208935f31 100644
--- a/src/test/ui/issues/issue-51515.stderr
+++ b/src/test/ui/issues/issue-51515.stderr
@@ -18,3 +18,4 @@ LL |     *bar = 64;
 
 error: aborting due to 2 previous errors
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/mut/mutable-class-fields-2.stderr b/src/test/ui/mut/mutable-class-fields-2.stderr
index a27a82ffe46..15323ce9a97 100644
--- a/src/test/ui/mut/mutable-class-fields-2.stderr
+++ b/src/test/ui/mut/mutable-class-fields-2.stderr
@@ -8,3 +8,4 @@ LL |     self.how_hungry -= 5;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/mut/mutable-class-fields.stderr b/src/test/ui/mut/mutable-class-fields.stderr
index 5391ccc80c5..40a0dc9b29c 100644
--- a/src/test/ui/mut/mutable-class-fields.stderr
+++ b/src/test/ui/mut/mutable-class-fields.stderr
@@ -8,3 +8,4 @@ LL |   nyan.how_hungry = 0;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/nll/closure-captures.stderr b/src/test/ui/nll/closure-captures.stderr
index 77f7d815eeb..b8f5cc86500 100644
--- a/src/test/ui/nll/closure-captures.stderr
+++ b/src/test/ui/nll/closure-captures.stderr
@@ -156,4 +156,5 @@ LL | |         *x = 1;});
 
 error: aborting due to 12 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/nll/constant-thread-locals-issue-47053.stderr b/src/test/ui/nll/constant-thread-locals-issue-47053.stderr
index 8afb42d66a6..a44acfb5fc3 100644
--- a/src/test/ui/nll/constant-thread-locals-issue-47053.stderr
+++ b/src/test/ui/nll/constant-thread-locals-issue-47053.stderr
@@ -6,3 +6,4 @@ LL |     FOO = 6;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/nll/generator-upvar-mutability.stderr b/src/test/ui/nll/generator-upvar-mutability.stderr
index 1b4e5b89984..31b061b61d1 100644
--- a/src/test/ui/nll/generator-upvar-mutability.stderr
+++ b/src/test/ui/nll/generator-upvar-mutability.stderr
@@ -9,3 +9,4 @@ LL |         x = 1;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/nll/issue-47388.stderr b/src/test/ui/nll/issue-47388.stderr
index d4064b3f50a..8d48b00f8d1 100644
--- a/src/test/ui/nll/issue-47388.stderr
+++ b/src/test/ui/nll/issue-47388.stderr
@@ -8,3 +8,4 @@ LL |     fancy_ref.num = 6;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/nll/issue-51244.stderr b/src/test/ui/nll/issue-51244.stderr
index 8a7e71e0326..c91083955b8 100644
--- a/src/test/ui/nll/issue-51244.stderr
+++ b/src/test/ui/nll/issue-51244.stderr
@@ -8,3 +8,4 @@ LL |     *my_ref = 0;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/nll/issue-57989.stderr b/src/test/ui/nll/issue-57989.stderr
index 00a9bab4868..4c416105035 100644
--- a/src/test/ui/nll/issue-57989.stderr
+++ b/src/test/ui/nll/issue-57989.stderr
@@ -20,4 +20,5 @@ LL |     g;
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0506`.
+Some errors have detailed explanations: E0506, E0594.
+For more information about an error, try `rustc --explain E0506`.
diff --git a/src/test/ui/rfc-2005-default-binding-mode/enum.stderr b/src/test/ui/rfc-2005-default-binding-mode/enum.stderr
index 9d53e6d7887..d6a89006bc0 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/enum.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/enum.stderr
@@ -18,3 +18,4 @@ LL |         *x += 1;
 
 error: aborting due to 3 previous errors
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr b/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr
index 5eace3d263d..a6f2f3ec309 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr
@@ -18,3 +18,4 @@ LL |             *n += 1;
 
 error: aborting due to 3 previous errors
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/suggestions/suggest-ref-mut.stderr b/src/test/ui/suggestions/suggest-ref-mut.stderr
index 24143678757..b4981279a23 100644
--- a/src/test/ui/suggestions/suggest-ref-mut.stderr
+++ b/src/test/ui/suggestions/suggest-ref-mut.stderr
@@ -35,3 +35,4 @@ LL |         ref quo => { *quo = 32; },
 
 error: aborting due to 4 previous errors
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/thread-local-mutation.stderr b/src/test/ui/thread-local-mutation.stderr
index 7f7738b5d65..e5dc0e72edf 100644
--- a/src/test/ui/thread-local-mutation.stderr
+++ b/src/test/ui/thread-local-mutation.stderr
@@ -6,3 +6,4 @@ LL |     S = "after";
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.stderr b/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.stderr
index 9fd8aa562f4..ad5451ced55 100644
--- a/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.stderr
@@ -71,4 +71,5 @@ LL |     || set(&mut x);
 
 error: aborting due to 8 previous errors
 
-For more information about this error, try `rustc --explain E0596`.
+Some errors have detailed explanations: E0594, E0596.
+For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.stderr b/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.stderr
index fef6c23a501..6bba38510b6 100644
--- a/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.stderr
@@ -42,3 +42,4 @@ LL | |     });
 
 error: aborting due to 4 previous errors
 
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.stderr b/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.stderr
index 2bc1f01af98..a38c612e1de 100644
--- a/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.stderr
@@ -16,3 +16,4 @@ LL | |     });
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0594`.