7dffd24da5
Suggest publicly accessible paths for items in private mod: When encountering a path in non-import situations that are not reachable due to privacy constraints, search for any public re-exports that the user could use instead. Track whether an import suggestion is offering a re-export. When encountering a path with private segments, mention if the item at the final path segment is not publicly accessible at all. Add item visibility metadata to privacy errors from imports: On unreachable imports, record the item that was being imported in order to suggest publicly available re-exports or to be explicit that the item is not available publicly from any path. In order to allow this, we add a mode to `resolve_path` that will not add new privacy errors, nor return early if it encounters one. This way we can get the `Res` corresponding to the final item in the import, which is used in the privacy error machinery.
14 lines
183 B
Rust
14 lines
183 B
Rust
// run-rustfix
|
|
|
|
pub mod a {
|
|
pub use self::b::Trait;
|
|
mod b {
|
|
pub trait Trait {}
|
|
}
|
|
}
|
|
|
|
struct S;
|
|
impl a::Trait for S {} //~ ERROR module `b` is private
|
|
|
|
fn main() {}
|