mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-16 05:56:56 +00:00
Extra context for unreachable_pub lint (fixes #110922)
While experienced Rustaceans no doubt know this sort of thing already, as more of a newbie I had trouble understanding why I was triggering the lint. Hopefully this expanded explanation saves someone else some head-scratching.
This commit is contained in:
parent
26e0c57dde
commit
3e71f4dd23
@ -1313,10 +1313,14 @@ declare_lint! {
|
||||
///
|
||||
/// ### Explanation
|
||||
///
|
||||
/// A bare `pub` visibility may be misleading if the item is not actually
|
||||
/// publicly exported from the crate. The `pub(crate)` visibility is
|
||||
/// recommended to be used instead, which more clearly expresses the intent
|
||||
/// that the item is only visible within its own crate.
|
||||
/// The `pub` keyword both expresses an intent for an item to be publicly available, and also
|
||||
/// signals to the compiler to make the item publicly accessible. The intent can only be
|
||||
/// satisfied, however, if all items which contain this item are *also* publicly accessible.
|
||||
/// Thus, this lint serves to identify situations where the intent does not match the reality.
|
||||
///
|
||||
/// If you wish the item to be accessible elsewhere within the crate, but not outside it, the
|
||||
/// `pub(crate)` visibility is recommended to be used instead. This more clearly expresses the
|
||||
/// intent that the item is only visible within its own crate.
|
||||
///
|
||||
/// This lint is "allow" by default because it will trigger for a large
|
||||
/// amount existing Rust code, and has some false-positives. Eventually it
|
||||
|
Loading…
Reference in New Issue
Block a user