From 9c2f1dd377d5bfa6ff7d122bb6ec5f2443bd5aa4 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 16 Oct 2019 13:29:30 +0200 Subject: [PATCH 1/2] Add long error explanation for E0578 --- src/librustc_resolve/error_codes.rs | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/librustc_resolve/error_codes.rs b/src/librustc_resolve/error_codes.rs index b14913cd4fdde..c59959ae4f4c5 100644 --- a/src/librustc_resolve/error_codes.rs +++ b/src/librustc_resolve/error_codes.rs @@ -1850,6 +1850,34 @@ fn main() {} ``` "##, +E0578: r##" +A module cannot be found and therefore, the visibility cannot be determined. + +Erroneous code example: + +```compile_fail,E0578,edition2018 +foo!(); + +pub (in ::Sea) struct Shark; // error! + +fn main() {} +``` + +Because of the call to the `foo` macro, the compiler guesses that the missing +module could be inside it and fails because the macro definition cannot be +found. + +To fix this error, please be sure that the module is in scope: + +```edition2018 +pub mod Sea { + pub (in crate::Sea) struct Shark; +} + +fn main() {} +``` +"##, + E0603: r##" A private item was used outside its scope. @@ -2017,5 +2045,4 @@ fn main() {} // E0427, merged into 530 // E0467, removed // E0470, removed - E0578, } From bfe9c9e42974d8deda4abf2027c868120004d853 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 16 Oct 2019 13:29:43 +0200 Subject: [PATCH 2/2] update ui tests --- src/test/ui/resolve/visibility-indeterminate.stderr | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/ui/resolve/visibility-indeterminate.stderr b/src/test/ui/resolve/visibility-indeterminate.stderr index b9678291ee40b..84d82ce852240 100644 --- a/src/test/ui/resolve/visibility-indeterminate.stderr +++ b/src/test/ui/resolve/visibility-indeterminate.stderr @@ -12,3 +12,4 @@ LL | foo!(); error: aborting due to 2 previous errors +For more information about this error, try `rustc --explain E0578`.