mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-30 04:56:25 +03:00
Split out ItemScope::dump from DefMap::dump
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
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 @@ pub(crate) fn censor_non_proc_macros(&mut self, this_module: ModuleId) {
|
||||
*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 {
|
||||
|
||||
@@ -333,27 +333,7 @@ pub fn dump(&self) -> String {
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user