Skip to content

Commit ee49697

Browse files
committed
debug creader
1 parent 3c5534f commit ee49697

File tree

3 files changed

+20
-8
lines changed

3 files changed

+20
-8
lines changed

compiler/rustc_metadata/src/creader.rs

+12-8
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ impl<'a> std::fmt::Debug for CrateDump<'a> {
142142
writeln!(fmt, " cnum: {cnum}")?;
143143
writeln!(fmt, " hash: {}", data.hash())?;
144144
writeln!(fmt, " reqd: {:?}", data.dep_kind())?;
145+
writeln!(fmt, " priv: {:?}", data.private_dep())?;
145146
let CrateSource { dylib, rlib, rmeta } = data.source();
146147
if let Some(dylib) = dylib {
147148
writeln!(fmt, " dylib: {}", dylib.0.display())?;
@@ -402,6 +403,7 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
402403
/// command parameter is set to `public-dependency`
403404
fn is_private_dep(&self, name: Symbol, private_dep: Option<bool>) -> bool {
404405
let extern_private = self.sess.opts.externs.get(name.as_str()).map(|e| e.is_private_dep);
406+
debug!("name: {name}, private: {private_dep:?}, extern private: {extern_private:?}");
405407
match (extern_private, private_dep) {
406408
// Explicit non-private via `--extern`, explicit non-private from metadata, or
407409
// unspecified with default to public.
@@ -433,10 +435,8 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
433435
let cnum = feed.key();
434436

435437
info!(
436-
"register crate `{}` (cnum = {}. private_dep = {})",
438+
"register crate `{}` (cnum = {cnum}. private_dep = {private_dep})",
437439
crate_root.name(),
438-
cnum,
439-
private_dep
440440
);
441441

442442
// Maintain a reference to the top most crate.
@@ -573,11 +573,6 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
573573
mut dep_kind: CrateDepKind,
574574
dep_of: Option<(&'b CratePaths, &'b CrateDep)>,
575575
) -> Result<CrateNum, CrateError> {
576-
info!("resolving crate `{}`", name);
577-
if !name.as_str().is_ascii() {
578-
return Err(CrateError::NonAsciiName(name));
579-
}
580-
581576
let dep_root = dep_of.map(|d| d.0);
582577
let dep = dep_of.map(|d| d.1);
583578
let hash = dep.map(|d| d.hash);
@@ -586,6 +581,15 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
586581
let path_kind = if dep.is_some() { PathKind::Dependency } else { PathKind::Crate };
587582
let private_dep = dep.map(|d| d.is_private);
588583

584+
info!(
585+
"resolving crate `{}`, dep of {:?} private {private_dep:?}",
586+
name,
587+
dep_root.map(|d| d.name)
588+
);
589+
if !name.as_str().is_ascii() {
590+
return Err(CrateError::NonAsciiName(name));
591+
}
592+
589593
let result = if let Some(cnum) = self.existing_match(name, hash, path_kind) {
590594
(LoadResult::Previous(cnum), None)
591595
} else {

compiler/rustc_metadata/src/rmeta/decoder.rs

+4
Original file line numberDiff line numberDiff line change
@@ -1956,6 +1956,10 @@ impl CrateMetadata {
19561956
self.root.header.hash
19571957
}
19581958

1959+
pub(crate) fn private_dep(&self) -> bool {
1960+
self.private_dep
1961+
}
1962+
19591963
fn num_def_ids(&self) -> usize {
19601964
self.root.tables.def_keys.size()
19611965
}

compiler/rustc_resolve/src/build_reduced_graph.rs

+4
Original file line numberDiff line numberDiff line change
@@ -760,6 +760,10 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
760760
}
761761

762762
ItemKind::ExternCrate(orig_name) => {
763+
tracing::info!(
764+
"extern crate {:?}",
765+
(&orig_name, &item, &local_def_id, &vis, &parent)
766+
);
763767
self.build_reduced_graph_for_extern_crate(
764768
orig_name,
765769
item,

0 commit comments

Comments
 (0)