]> git.lizzy.rs Git - rust.git/commitdiff
ty::pretty: document "dummy Span extern crate" special-case in `try_print_visible_def...
authorEduard-Mihai Burtescu <eddyb@lyken.rs>
Sun, 10 Oct 2021 15:18:30 +0000 (18:18 +0300)
committerEduard-Mihai Burtescu <eddyb@lyken.rs>
Sun, 10 Oct 2021 15:18:30 +0000 (18:18 +0300)
compiler/rustc_middle/src/ty/print/pretty.rs

index 2610a76b2810bf9fca2cc3f395e0ac277cd81331..ae0cc97c7044e721b25b3e1110a186b1e9b4bda5 100644 (file)
@@ -350,18 +350,19 @@ fn try_print_visible_def_path_recur(
             match self.tcx().extern_crate(def_id) {
                 Some(&ExternCrate { src, dependency_of, span, .. }) => match (src, dependency_of) {
                     (ExternCrateSource::Extern(def_id), LOCAL_CRATE) => {
-                        debug!("try_print_visible_def_path: def_id={:?}", def_id);
-                        return Ok((
-                            if !span.is_dummy() {
-                                self.print_def_path(def_id, &[])?
-                            } else {
-                                self.path_crate(cnum)?
-                            },
-                            true,
-                        ));
+                        // NOTE(eddyb) the only reason `span` might be dummy,
+                        // that we're aware of, is that it's the `std`/`core`
+                        // `extern crate` injected by default.
+                        // FIXME(eddyb) find something better to key this on,
+                        // or avoid ending up with `ExternCrateSource::Extern`,
+                        // for the injected `std`/`core`.
+                        if span.is_dummy() {
+                            return Ok((self.path_crate(cnum)?, true));
+                        }
+
+                        return Ok((self.print_def_path(def_id, &[])?, true));
                     }
                     (ExternCrateSource::Path, LOCAL_CRATE) => {
-                        debug!("try_print_visible_def_path: def_id={:?}", def_id);
                         return Ok((self.path_crate(cnum)?, true));
                     }
                     _ => {}