about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCamelid <camelidcamel@gmail.com>2020-11-27 17:18:29 -0800
committerCamelid <camelidcamel@gmail.com>2020-11-27 19:07:14 -0800
commit1b846bfbccbb3780ca1a9830f0ab72061f52ebb8 (patch)
tree09aa409fafd81e9b2ce20d016ad8b81dedbf2198
parent72da5a9d85a522b11e80d0fdd1fd95247d442604 (diff)
downloadrust-1b846bfbccbb3780ca1a9830f0ab72061f52ebb8.tar.gz
rust-1b846bfbccbb3780ca1a9830f0ab72061f52ebb8.zip
Slightly improve code samples in E0591
* Improve formatting
* Don't hide `unsafe` block - it's important!
-rw-r--r--compiler/rustc_error_codes/src/error_codes/E0591.md20
-rw-r--r--src/test/ui/explain.stdout18
2 files changed, 26 insertions, 12 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes/E0591.md b/compiler/rustc_error_codes/src/error_codes/E0591.md
index 7f68815b1c2..f49805d9b4e 100644
--- a/compiler/rustc_error_codes/src/error_codes/E0591.md
+++ b/compiler/rustc_error_codes/src/error_codes/E0591.md
@@ -1,14 +1,20 @@
 Per [RFC 401][rfc401], if you have a function declaration `foo`:
 
 ```
+struct S;
+
 // For the purposes of this explanation, all of these
 // different kinds of `fn` declarations are equivalent:
-struct S;
+
 fn foo(x: S) { /* ... */ }
 # #[cfg(for_demonstration_only)]
-extern "C" { fn foo(x: S); }
+extern "C" {
+    fn foo(x: S);
+}
 # #[cfg(for_demonstration_only)]
-impl S { fn foo(self) { /* ... */ } }
+impl S {
+    fn foo(self) { /* ... */ }
+}
 ```
 
 the type of `foo` is **not** `fn(S)`, as one might expect.
@@ -40,10 +46,10 @@ extern "C" fn foo(userdata: Box<i32>) {
 
 # fn callback(_: extern "C" fn(*mut i32)) {}
 # use std::mem::transmute;
-# unsafe {
-let f: extern "C" fn(*mut i32) = transmute(foo);
-callback(f);
-# }
+unsafe {
+    let f: extern "C" fn(*mut i32) = transmute(foo);
+    callback(f);
+}
 ```
 
 Here, transmute is being used to convert the types of the fn arguments.
diff --git a/src/test/ui/explain.stdout b/src/test/ui/explain.stdout
index c50c46ee564..62f1a7f98ea 100644
--- a/src/test/ui/explain.stdout
+++ b/src/test/ui/explain.stdout
@@ -1,12 +1,18 @@
 Per [RFC 401][rfc401], if you have a function declaration `foo`:
 
 ```
+struct S;
+
 // For the purposes of this explanation, all of these
 // different kinds of `fn` declarations are equivalent:
-struct S;
+
 fn foo(x: S) { /* ... */ }
-extern "C" { fn foo(x: S); }
-impl S { fn foo(self) { /* ... */ } }
+extern "C" {
+    fn foo(x: S);
+}
+impl S {
+    fn foo(self) { /* ... */ }
+}
 ```
 
 the type of `foo` is **not** `fn(S)`, as one might expect.
@@ -34,8 +40,10 @@ extern "C" fn foo(userdata: Box<i32>) {
     /* ... */
 }
 
-let f: extern "C" fn(*mut i32) = transmute(foo);
-callback(f);
+unsafe {
+    let f: extern "C" fn(*mut i32) = transmute(foo);
+    callback(f);
+}
 ```
 
 Here, transmute is being used to convert the types of the fn arguments.