Auto merge of #83723 - cjgillot:ownernode, r=petrochenkov
Store all HIR owners in the same container This replaces the previous storage in a BTreeMap for each of Item/ImplItem/TraitItem/ForeignItem. This should allow for a more compact storage. Based on https://github.com/rust-lang/rust/pull/83114
This commit is contained in:
commit
6489ee1041
34 changed files with 579 additions and 486 deletions
|
@ -568,9 +568,9 @@ impl<'tcx> LateLintPass<'tcx> for MissingDoc {
|
|||
}
|
||||
|
||||
fn check_crate(&mut self, cx: &LateContext<'_>, krate: &hir::Crate<'_>) {
|
||||
self.check_missing_docs_attrs(cx, hir::CRATE_HIR_ID, krate.item.inner, "the", "crate");
|
||||
self.check_missing_docs_attrs(cx, hir::CRATE_HIR_ID, krate.module().inner, "the", "crate");
|
||||
|
||||
for macro_def in krate.exported_macros {
|
||||
for macro_def in krate.exported_macros() {
|
||||
// Non exported macros should be skipped, since `missing_docs` only
|
||||
// applies to externally visible items.
|
||||
if !cx.access_levels.is_exported(macro_def.hir_id()) {
|
||||
|
|
|
@ -33,11 +33,11 @@ fn lint_levels(tcx: TyCtxt<'_>, (): ()) -> LintLevelMap {
|
|||
let mut builder = LintLevelMapBuilder { levels, tcx, store };
|
||||
let krate = tcx.hir().krate();
|
||||
|
||||
builder.levels.id_to_set.reserve(krate.exported_macros.len() + 1);
|
||||
builder.levels.id_to_set.reserve(krate.owners.len() + 1);
|
||||
|
||||
let push = builder.levels.push(tcx.hir().attrs(hir::CRATE_HIR_ID), &store, true);
|
||||
builder.levels.register_id(hir::CRATE_HIR_ID);
|
||||
for macro_def in krate.exported_macros {
|
||||
for macro_def in krate.exported_macros() {
|
||||
builder.levels.register_id(macro_def.hir_id());
|
||||
}
|
||||
intravisit::walk_crate(&mut builder, krate);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue