7547: Split out ItemScope::dump from DefMap::dump r=jonas-schievink a=jonas-schievink

This is helpful for more targeted debugging

bors r+

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
This commit is contained in:
bors[bot] 2021-02-03 18:06:55 +00:00 committed by GitHub
commit 74a223faa3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 21 deletions

View file

@ -8,6 +8,7 @@ use hir_expand::name::Name;
use hir_expand::MacroDefKind;
use once_cell::sync::Lazy;
use rustc_hash::{FxHashMap, FxHashSet};
use stdx::format_to;
use test_utils::mark;
use crate::{
@ -292,6 +293,30 @@ impl ItemScope {
*vis = Visibility::Module(this_module);
}
}
pub(crate) fn dump(&self, buf: &mut String) {
let mut entries: Vec<_> = self.resolutions().collect();
entries.sort_by_key(|(name, _)| name.clone());
for (name, def) in entries {
format_to!(buf, "{}:", name.map_or("_".to_string(), |name| name.to_string()));
if def.types.is_some() {
buf.push_str(" t");
}
if def.values.is_some() {
buf.push_str(" v");
}
if def.macros.is_some() {
buf.push_str(" m");
}
if def.is_none() {
buf.push_str(" _");
}
buf.push('\n');
}
}
}
impl PerNs {

View file

@ -333,27 +333,7 @@ impl DefMap {
fn go(buf: &mut String, map: &DefMap, path: &str, module: LocalModuleId) {
format_to!(buf, "{}\n", path);
let mut entries: Vec<_> = map.modules[module].scope.resolutions().collect();
entries.sort_by_key(|(name, _)| name.clone());
for (name, def) in entries {
format_to!(buf, "{}:", name.map_or("_".to_string(), |name| name.to_string()));
if def.types.is_some() {
buf.push_str(" t");
}
if def.values.is_some() {
buf.push_str(" v");
}
if def.macros.is_some() {
buf.push_str(" m");
}
if def.is_none() {
buf.push_str(" _");
}
buf.push('\n');
}
map.modules[module].scope.dump(buf);
for (name, child) in map.modules[module].children.iter() {
let path = format!("{}::{}", path, name);