-
Notifications
You must be signed in to change notification settings - Fork 13.9k
Open
Labels
A-cratesArea: Crates and their interactions (like crate loading)Area: Crates and their interactions (like crate loading)A-lintsArea: Lints (warnings about flaws in source code) such as unused_mut.Area: Lints (warnings about flaws in source code) such as unused_mut.A-resolveArea: Name/path resolution done by `rustc_resolve` specificallyArea: Name/path resolution done by `rustc_resolve` specificallyA-visibilityArea: Visibility / privacyArea: Visibility / privacyC-future-incompatibilityCategory: Future-incompatibility lintsCategory: Future-incompatibility lintsC-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-langRelevant to the language teamRelevant to the language team
Description
The pub_use_of_private_extern_crate lint detects a specific situation of re-exporting a private extern crate:
extern crate core;
pub use core as reexported_core;A public use declaration should not be used to publicly re-export a private extern crate. pub extern crate should be used instead.This was historically allowed, but is not the intended behavior according to the visibility rules.
This used to be tracked as part of #34537, but is only tangentially related so it got a new dedicated tracking issue.
Related PRs
- make pub_use_of_private_extern_crate show up in cargo's future breakage reports #127656 tried to make this a hard error, but there were too many regressions, mostly because several ancient versions of
bitflagsare still in use.
Metadata
Metadata
Assignees
Labels
A-cratesArea: Crates and their interactions (like crate loading)Area: Crates and their interactions (like crate loading)A-lintsArea: Lints (warnings about flaws in source code) such as unused_mut.Area: Lints (warnings about flaws in source code) such as unused_mut.A-resolveArea: Name/path resolution done by `rustc_resolve` specificallyArea: Name/path resolution done by `rustc_resolve` specificallyA-visibilityArea: Visibility / privacyArea: Visibility / privacyC-future-incompatibilityCategory: Future-incompatibility lintsCategory: Future-incompatibility lintsC-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-langRelevant to the language teamRelevant to the language team