html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
html_root_url = "https://doc.rust-lang.org/nightly/")]
-#![feature(nll)]
+#![deny(rust_2018_idioms)]
+
#![feature(rustc_diagnostic_macros)]
#![recursion_limit="256"]
-#[macro_use] extern crate rustc;
#[macro_use] extern crate syntax;
-#[macro_use] extern crate log;
-extern crate rustc_typeck;
-extern crate syntax_pos;
-extern crate rustc_data_structures;
+use rustc::bug;
use rustc::hir::{self, Node, PatKind, AssociatedItemKind};
use rustc::hir::def::Def;
use rustc::hir::def_id::{CRATE_DEF_INDEX, LOCAL_CRATE, CrateNum, DefId};
use rustc::middle::privacy::{AccessLevel, AccessLevels};
use rustc::ty::{self, TyCtxt, Ty, TraitRef, TypeFoldable, GenericParamDefKind};
use rustc::ty::fold::TypeVisitor;
-use rustc::ty::query::{Providers, queries};
+use rustc::ty::query::Providers;
use rustc::ty::subst::Substs;
use rustc::util::nodemap::NodeSet;
use rustc_data_structures::fx::FxHashSet;
/// 1. It's contained within a public type
/// 2. It comes from a private crate
fn leaks_private_dep(&self, item_id: DefId) -> bool {
- // Don't do any leak checking if no private crates were specified
- if self.private_crates.is_empty() {
- return false
- }
let ret = self.required_visibility == ty::Visibility::Public &&
self.private_crates.contains(&item_id.krate);
-
- debug!("leaks_private_dep(item_id={:?})={}", item_id, ret);
+ log::debug!("leaks_private_dep(item_id={:?})={}", item_id, ret);
return ret;
}
}
}
}
-pub fn provide(providers: &mut Providers) {
+pub fn provide(providers: &mut Providers<'_>) {
*providers = Providers {
privacy_access_levels,
check_mod_privacy,
let krate = tcx.hir().krate();
for &module in krate.modules.keys() {
- queries::check_mod_privacy::ensure(tcx, tcx.hir().local_def_id(module));
+ tcx.ensure().check_mod_privacy(tcx.hir().local_def_id(module));
}
let private_crates: FxHashSet<CrateNum> = tcx.sess.opts.extern_private.iter()