about summary refs log tree commit diff
path: root/src/libsyntax/diagnostic_list.rs
diff options
context:
space:
mode:
authorZack M. Davis <code@zackmdavis.net>2017-08-07 15:09:53 -0700
committerZack M. Davis <code@zackmdavis.net>2017-08-09 01:33:49 -0700
commit93bc599d65d0f946944b3c97be3556658cc01eab (patch)
tree620e3f077b4851ee75a3ea5b88b7bb4898d0e90a /src/libsyntax/diagnostic_list.rs
parent6fa140b86994d216b2bd425f69048a3a6c3067fc (diff)
downloadrust-93bc599d65d0f946944b3c97be3556658cc01eab.tar.gz
rust-93bc599d65d0f946944b3c97be3556658cc01eab.zip
extended information for E0552 unrecognized representation hint
Diffstat (limited to 'src/libsyntax/diagnostic_list.rs')
-rw-r--r--src/libsyntax/diagnostic_list.rs31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/libsyntax/diagnostic_list.rs b/src/libsyntax/diagnostic_list.rs
index 33dbc02d869..7c6db17a352 100644
--- a/src/libsyntax/diagnostic_list.rs
+++ b/src/libsyntax/diagnostic_list.rs
@@ -162,6 +162,36 @@ For more information about the cfg attribute, read:
 https://doc.rust-lang.org/reference.html#conditional-compilation
 "##,
 
+E0552: r##"
+A unrecognized representation attribute was used.
+
+Erroneous code example:
+
+```compile_fail,E0552
+#[repr(D)] // error: unrecognized representation hint
+struct MyStruct {
+    my_field: usize
+}
+```
+
+You can use a `repr` attribute to tell the compiler how you want a struct or
+enum to be laid out in memory.
+
+Make sure you're using one of the supported options:
+
+```
+#[repr(C)] // ok!
+struct MyStruct {
+    my_field: usize
+}
+```
+
+For more information about specifying representations, see the ["Alternative
+Representations" section] of the Rustonomicon.
+
+["Alternative Representations" section]: https://doc.rust-lang.org/nomicon/other-reprs.html
+"##,
+
 E0554: r##"
 Feature attributes are only allowed on the nightly release channel. Stable or
 beta compilers will not comply.
@@ -315,7 +345,6 @@ register_diagnostics! {
     E0549, // rustc_deprecated attribute must be paired with either stable or unstable attribute
     E0550, // multiple deprecated attributes
     E0551, // incorrect meta item
-    E0552, // unrecognized representation hint
     E0555, // malformed feature attribute, expected #![feature(...)]
     E0556, // malformed feature, expected just one word
     E0557, // feature has been removed