| Visibility is restricted to a module which isn't an ancestor of the current |
| item. |
| |
| Erroneous code example: |
| |
| ```compile_fail,E0742,edition2018 |
| pub mod sea {} |
| |
| pub (in crate::sea) struct Shark; // error! |
| |
| fn main() {} |
| ``` |
| |
| To fix this error, we need to move the `Shark` struct inside the `sea` module: |
| |
| ```edition2018 |
| pub mod sea { |
| pub (in crate::sea) struct Shark; // ok! |
| } |
| |
| fn main() {} |
| ``` |
| |
| Of course, you can do it as long as the module you're referring to is an |
| ancestor: |
| |
| ```edition2018 |
| pub mod earth { |
| pub mod sea { |
| pub (in crate::earth) struct Shark; // ok! |
| } |
| } |
| |
| fn main() {} |
| ``` |