}
declare_lint! {
- pub EXTERNAL_PRIVATE_DEPENDENCY,
+ pub EXPORTED_PRIVATE_DEPENDENCIES,
Warn,
"public interface leaks type from a private dependency"
}
TRIVIAL_CASTS,
TRIVIAL_NUMERIC_CASTS,
PRIVATE_IN_PUBLIC,
- EXTERNAL_PRIVATE_DEPENDENCY,
+ EXPORTED_PRIVATE_DEPENDENCIES,
PUB_USE_OF_PRIVATE_EXTERN_CRATE,
INVALID_TYPE_PARAM_DEFAULT,
CONST_ERR,
edition: None,
},
FutureIncompatibleInfo {
- id: LintId::of(EXTERNAL_PRIVATE_DEPENDENCY),
+ id: LintId::of(EXPORTED_PRIVATE_DEPENDENCIES),
reference: "issue #44663 <https://github.com/rust-lang/rust/issues/44663>",
edition: None,
},
fn check_def_id(&mut self, def_id: DefId, kind: &str, descr: &dyn fmt::Display) -> bool {
if self.leaks_private_dep(def_id) {
- self.tcx.lint_node(lint::builtin::EXTERNAL_PRIVATE_DEPENDENCY,
+ self.tcx.lint_node(lint::builtin::EXPORTED_PRIVATE_DEPENDENCIES,
self.item_id,
self.span,
&format!("{} `{}` from private dependency '{}' in public \
fn check_mod_privacy<'tcx>(tcx: TyCtxt<'_, 'tcx, 'tcx>, module_def_id: DefId) {
let empty_tables = ty::TypeckTables::empty(None);
- let public_crates: FxHashSet<CrateNum> = tcx.sess.opts.extern_public.iter().flat_map(|c| {
- tcx.crates().iter().find(|&&krate| &tcx.crate_name(krate) == c).cloned()
- }).collect();
// Check privacy of names not checked in previous compilation stages.
let mut visitor = NamePrivacyVisitor {
queries::check_mod_privacy::ensure(tcx, tcx.hir().local_def_id(module));
}
+ let public_crates: FxHashSet<CrateNum> = tcx.sess.opts.extern_public.iter().flat_map(|c| {
+ tcx.crates().iter().find(|&&krate| &tcx.crate_name(krate) == c).cloned()
+ }).collect();
+
+
// Build up a set of all exported items in the AST. This is a set of all
// items which are reachable from external crates based on visibility.
let mut visitor = EmbargoVisitor {
// Without ![feature(public_private_dependencies)],
// this should do nothing/
-#![deny(external_private_dependency)]
+#![deny(exported_private_dependencies)]
extern crate pub_dep;
// aux-build:pub_dep.rs
// compile-flags: --extern-public=pub_dep
#![feature(public_private_dependencies)]
-#![deny(external_private_dependency)]
+#![deny(exported_private_dependencies)]
// This crate is a private dependency
extern crate priv_dep;
note: lint level defined here
--> $DIR/pub-priv1.rs:5:9
|
-LL | #![deny(external_private_dependency)]
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+LL | #![deny(exported_private_dependencies)]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #44663 <https://github.com/rust-lang/rust/issues/44663>
// run-pass
#![feature(public_private_dependencies)]
-#![deny(external_private_dependency)]
+#![deny(exported_private_dependencies)]
pub struct PublicType {
pub field: Option<u8>