about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2019-10-15 13:52:49 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2019-10-30 14:48:45 +0100
commitb22a1638bf55a5769cd29c22f76dfee3f79f9049 (patch)
treef5d637c241b52543dada2194d7b7ebad0c77a3cf /src
parent0b7e28a1610924a27471ffdb59a2885709b3b415 (diff)
downloadrust-b22a1638bf55a5769cd29c22f76dfee3f79f9049.tar.gz
rust-b22a1638bf55a5769cd29c22f76dfee3f79f9049.zip
Add long error explanation for E0577
Diffstat (limited to 'src')
-rw-r--r--src/librustc_resolve/error_codes.rs28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/librustc_resolve/error_codes.rs b/src/librustc_resolve/error_codes.rs
index 9937f27931f..b14913cd4fd 100644
--- a/src/librustc_resolve/error_codes.rs
+++ b/src/librustc_resolve/error_codes.rs
@@ -1823,6 +1823,33 @@ trait Hello {
 ```
 "##,
 
+E0577: r##"
+Something other than a module was found in visibility scope.
+
+Erroneous code example:
+
+```compile_fail,E0577,edition2018
+pub struct Sea;
+
+pub (in crate::Sea) struct Shark; // error!
+
+fn main() {}
+```
+
+`Sea` is not a module, therefore it is invalid to use it in a visibility path.
+To fix this error we need to ensure `Sea` is a module.
+
+Please note that the visibility scope can only be applied on ancestors!
+
+```edition2018
+pub mod Sea {
+    pub (in crate::Sea) struct Shark; // ok!
+}
+
+fn main() {}
+```
+"##,
+
 E0603: r##"
 A private item was used outside its scope.
 
@@ -1990,6 +2017,5 @@ fn main() {}
 //  E0427, merged into 530
 //  E0467, removed
 //  E0470, removed
-    E0577,
     E0578,
 }