about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-10-31 02:54:05 +0100
committerGitHub <noreply@github.com>2019-10-31 02:54:05 +0100
commit0bd4037931042103a702bc8bf8aeca8ca5c7264b (patch)
tree98910ef0b2719faf0576d4607a74f7ee938a10fb
parent6cee78c4f052f2189e5598d21e8bbfcfe5df6896 (diff)
parent125d60d4df2f3cdd3fdd830e725eed2bab64aa3b (diff)
downloadrust-0bd4037931042103a702bc8bf8aeca8ca5c7264b.tar.gz
rust-0bd4037931042103a702bc8bf8aeca8ca5c7264b.zip
Rollup merge of #65434 - GuillaumeGomez:long-err-explanation-E0577, r=Dylan-DPC
Add long error explanation for E0577

Part of #61137.

r? @kinnison
-rw-r--r--src/librustc_resolve/error_codes.rs28
-rw-r--r--src/test/ui/resolve/resolve-bad-visibility.stderr2
-rw-r--r--src/test/ui/span/visibility-ty-params.stderr1
3 files changed, 29 insertions, 2 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,
 }
diff --git a/src/test/ui/resolve/resolve-bad-visibility.stderr b/src/test/ui/resolve/resolve-bad-visibility.stderr
index 43af38cf491..197ecf0cb00 100644
--- a/src/test/ui/resolve/resolve-bad-visibility.stderr
+++ b/src/test/ui/resolve/resolve-bad-visibility.stderr
@@ -30,5 +30,5 @@ LL | pub(in too_soon) struct H;
 
 error: aborting due to 5 previous errors
 
-Some errors have detailed explanations: E0433, E0742.
+Some errors have detailed explanations: E0433, E0577, E0742.
 For more information about an error, try `rustc --explain E0433`.
diff --git a/src/test/ui/span/visibility-ty-params.stderr b/src/test/ui/span/visibility-ty-params.stderr
index c2f0711b0c8..d3fa1d7732e 100644
--- a/src/test/ui/span/visibility-ty-params.stderr
+++ b/src/test/ui/span/visibility-ty-params.stderr
@@ -18,3 +18,4 @@ LL |     m!{ m<> }
 
 error: aborting due to 3 previous errors
 
+For more information about this error, try `rustc --explain E0577`.