summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_error_codes/src/error_codes/E0364.md
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_error_codes/src/error_codes/E0364.md')
-rw-r--r--compiler/rustc_error_codes/src/error_codes/E0364.md32
1 files changed, 32 insertions, 0 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes/E0364.md b/compiler/rustc_error_codes/src/error_codes/E0364.md
new file mode 100644
index 000000000..d01fb0c9c
--- /dev/null
+++ b/compiler/rustc_error_codes/src/error_codes/E0364.md
@@ -0,0 +1,32 @@
+Private items cannot be publicly re-exported. This error indicates that you
+attempted to `pub use` a type or value that was not itself public.
+
+Erroneous code example:
+
+```compile_fail,E0364
+mod a {
+ fn foo() {}
+
+ mod a {
+ pub use super::foo; // error!
+ }
+}
+```
+
+The solution to this problem is to ensure that the items that you are
+re-exporting are themselves marked with `pub`:
+
+```
+mod a {
+ pub fn foo() {} // ok!
+
+ mod a {
+ pub use super::foo;
+ }
+}
+```
+
+See the [Use Declarations][use-declarations] section of the reference for
+more information on this topic.
+
+[use-declarations]: https://doc.rust-lang.org/reference/items/use-declarations.html