]> git.lizzy.rs Git - rust.git/commitdiff
Rename declaration_name -> display_name
authorAleksey Kladov <aleksey.kladov@gmail.com>
Tue, 20 Oct 2020 13:38:11 +0000 (15:38 +0200)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Tue, 20 Oct 2020 13:38:11 +0000 (15:38 +0200)
Declaration names sounds like a name of declaration -- something you
can use for analysis. It empathically isn't, and is just a label
displayed in various UI. It's important not to confuse the two, least
we accidentally mix semantics with UI (I believe, there's already a
case of this in the FamousDefs at least).

crates/assists/src/utils.rs
crates/base_db/src/input.rs
crates/hir/src/code_model.rs
crates/hir_def/src/import_map.rs
crates/hir_def/src/nameres.rs
crates/ide/src/doc_links.rs
crates/ide/src/hover.rs
crates/ide/src/inlay_hints.rs
crates/ide/src/prime_caches.rs
crates/ide/src/status.rs
crates/rust-analyzer/src/cli/diagnostics.rs

index b37b0d2b68c345b8050d17ed5f14833fe6404ebc..4e89a7aedb2bc15b4ee094de4f6b58d75c26abab 100644 (file)
@@ -406,7 +406,7 @@ fn find_def(&self, path: &str) -> Option<ScopeDef> {
         let std_crate = path.next()?;
         let std_crate = if self
             .1
-            .declaration_name(db)
+            .display_name(db)
             .map(|name| name.to_string() == std_crate)
             .unwrap_or(false)
         {
index b870e2ceedfc70d08fd2ad04651e7a31b2262d38..eb3aac88dc2cff3223fb21fb876131cc0668a4fb 100644 (file)
@@ -127,11 +127,13 @@ fn eq(&self, other: &ProcMacro) -> bool {
 pub struct CrateData {
     pub root_file_id: FileId,
     pub edition: Edition,
-    /// A name used in the package's project declaration: for Cargo projects, it's [package].name,
-    /// can be different for other project types or even absent (a dummy crate for the code snippet, for example).
-    /// NOTE: The crate can be referenced as a dependency under a different name,
-    /// this one should be used when working with crate hierarchies.
-    pub declaration_name: Option<CrateName>,
+    /// A name used in the package's project declaration: for Cargo projects,
+    /// it's [package].name, can be different for other project types or even
+    /// absent (a dummy crate for the code snippet, for example).
+    ///
+    /// For purposes of analysis, crates are anonymous (only names in
+    /// `Dependency` matters), this name should only be used for UI.
+    pub display_name: Option<CrateName>,
     pub cfg_options: CfgOptions,
     pub env: Env,
     pub dependencies: Vec<Dependency>,
@@ -160,7 +162,7 @@ pub fn add_crate_root(
         &mut self,
         file_id: FileId,
         edition: Edition,
-        declaration_name: Option<CrateName>,
+        display_name: Option<CrateName>,
         cfg_options: CfgOptions,
         env: Env,
         proc_macro: Vec<(SmolStr, Arc<dyn tt::TokenExpander>)>,
@@ -171,7 +173,7 @@ pub fn add_crate_root(
         let data = CrateData {
             root_file_id: file_id,
             edition,
-            declaration_name,
+            display_name,
             cfg_options,
             env,
             proc_macro,
@@ -310,8 +312,8 @@ pub fn patch_cfg_if(&mut self) -> bool {
         }
     }
 
-    fn hacky_find_crate(&self, declaration_name: &str) -> Option<CrateId> {
-        self.iter().find(|it| self[*it].declaration_name.as_deref() == Some(declaration_name))
+    fn hacky_find_crate(&self, display_name: &str) -> Option<CrateId> {
+        self.iter().find(|it| self[*it].display_name.as_deref() == Some(display_name))
     }
 }
 
index b65be4fe1b2c4c94923eb07bad7d767c915e9b9e..64f3fbe3102816fb791990fa5441910967eebb7f 100644 (file)
@@ -103,8 +103,8 @@ pub fn edition(self, db: &dyn HirDatabase) -> Edition {
         db.crate_graph()[self.id].edition
     }
 
-    pub fn declaration_name(self, db: &dyn HirDatabase) -> Option<CrateName> {
-        db.crate_graph()[self.id].declaration_name.clone()
+    pub fn display_name(self, db: &dyn HirDatabase) -> Option<CrateName> {
+        db.crate_graph()[self.id].display_name.clone()
     }
 
     pub fn query_external_importables(
index 028cae2e7229b88105c6b7d47317564ba03cc85b..1e24f29a81f4a400b36e69f9343ab7edd1761776 100644 (file)
@@ -356,7 +356,7 @@ fn check_search(ra_fixture: &str, crate_name: &str, query: Query, expect: Expect
         let krate = crate_graph
             .iter()
             .find(|krate| {
-                crate_graph[*krate].declaration_name.as_ref().map(|n| n.to_string())
+                crate_graph[*krate].display_name.as_ref().map(|n| n.to_string())
                     == Some(crate_name.to_string())
             })
             .unwrap();
@@ -375,7 +375,7 @@ fn check_search(ra_fixture: &str, crate_name: &str, query: Query, expect: Expect
                     let path = map.path_of(item).unwrap();
                     format!(
                         "{}::{} ({})\n",
-                        crate_graph[krate].declaration_name.as_ref().unwrap(),
+                        crate_graph[krate].display_name.as_ref().unwrap(),
                         path,
                         mark
                     )
@@ -416,7 +416,7 @@ fn check(ra_fixture: &str, expect: Expect) {
             .iter()
             .filter_map(|krate| {
                 let cdata = &crate_graph[krate];
-                let name = cdata.declaration_name.as_ref()?;
+                let name = cdata.display_name.as_ref()?;
 
                 let map = db.import_map(krate);
 
index 464ffef2120fe54ec0b8acc1c27f80976daef182..3d04f81c64383d5cccee9a71269c701e14df042a 100644 (file)
@@ -172,11 +172,7 @@ pub struct ModuleData {
 impl CrateDefMap {
     pub(crate) fn crate_def_map_query(db: &dyn DefDatabase, krate: CrateId) -> Arc<CrateDefMap> {
         let _p = profile::span("crate_def_map_query").detail(|| {
-            db.crate_graph()[krate]
-                .declaration_name
-                .as_ref()
-                .map(ToString::to_string)
-                .unwrap_or_default()
+            db.crate_graph()[krate].display_name.as_deref().unwrap_or_default().to_string()
         });
         let def_map = {
             let edition = db.crate_graph()[krate].edition;
index d9dc63b33cc0494cf46d84472dcaf22c9034dd40..b9d8b8a2b5b9f189e98cc8b07bd4b15aebeb5096 100644 (file)
@@ -130,7 +130,7 @@ fn get_doc_link(db: &RootDatabase, definition: Definition) -> Option<String> {
     let module = definition.module(db)?;
     let krate = module.krate();
     let import_map = db.import_map(krate.into());
-    let base = once(krate.declaration_name(db)?.to_string())
+    let base = once(krate.display_name(db)?.to_string())
         .chain(import_map.path_of(ns)?.segments.iter().map(|name| name.to_string()))
         .join("/");
 
@@ -188,7 +188,7 @@ fn rewrite_intra_doc_link(
     let krate = resolved.module(db)?.krate();
     let canonical_path = resolved.canonical_path(db)?;
     let new_target = get_doc_url(db, &krate)?
-        .join(&format!("{}/", krate.declaration_name(db)?))
+        .join(&format!("{}/", krate.display_name(db)?))
         .ok()?
         .join(&canonical_path.replace("::", "/"))
         .ok()?
@@ -208,7 +208,7 @@ fn rewrite_url_link(db: &RootDatabase, def: ModuleDef, target: &str) -> Option<S
     let module = def.module(db)?;
     let krate = module.krate();
     let canonical_path = def.canonical_path(db)?;
-    let base = format!("{}/{}", krate.declaration_name(db)?, canonical_path.replace("::", "/"));
+    let base = format!("{}/{}", krate.display_name(db)?, canonical_path.replace("::", "/"));
 
     get_doc_url(db, &krate)
         .and_then(|url| url.join(&base).ok())
@@ -357,7 +357,7 @@ fn get_doc_url(db: &RootDatabase, krate: &Crate) -> Option<Url> {
             //
             // FIXME: clicking on the link should just open the file in the editor,
             // instead of falling back to external urls.
-            Some(format!("https://docs.rs/{}/*/", krate.declaration_name(db)?))
+            Some(format!("https://docs.rs/{}/*/", krate.display_name(db)?))
         })
         .and_then(|s| Url::parse(&s).ok())
 }
index 845333e2aec0e96b4e528beffb84a9f7d448513f..6466422c5ee61985236abcc9c401778747b63a47 100644 (file)
@@ -300,7 +300,7 @@ fn definition_owner_name(db: &RootDatabase, def: &Definition) -> Option<String>
 
 fn render_path(db: &RootDatabase, module: Module, item_name: Option<String>) -> String {
     let crate_name =
-        db.crate_graph()[module.krate().into()].declaration_name.as_ref().map(ToString::to_string);
+        db.crate_graph()[module.krate().into()].display_name.as_ref().map(|it| it.to_string());
     let module_path = module
         .path_to_root(db)
         .into_iter()
index e2079bbcf3dcb9854db19c3140c03bf9691f8fc7..f5f3663542b3e84aada9c43387456c10a43f335b 100644 (file)
@@ -215,7 +215,7 @@ fn hint_iterator(
         .last()
         .and_then(|strukt| strukt.as_adt())?;
     let krate = strukt.krate(db)?;
-    if krate.declaration_name(db).as_deref() != Some("core") {
+    if krate.display_name(db).as_deref() != Some("core") {
         return None;
     }
     let iter_trait = FamousDefs(sema, krate).core_iter_Iterator()?;
index 9687c2734a096d54f19125e15caff6c40441e9b0..6944dbcd2a761b2e9bf3df7a1ba0b624773d0647 100644 (file)
@@ -32,8 +32,7 @@ pub(crate) fn prime_caches(db: &RootDatabase, cb: &(dyn Fn(PrimeCachesProgress)
     // Unfortunately rayon prevents panics from propagation out of a `scope`, which breaks
     // cancellation, so we cannot use rayon.
     for (i, krate) in topo.iter().enumerate() {
-        let crate_name =
-            graph[*krate].declaration_name.as_ref().map(ToString::to_string).unwrap_or_default();
+        let crate_name = graph[*krate].display_name.as_deref().unwrap_or_default().to_string();
 
         cb(PrimeCachesProgress::StartedOnCrate {
             on_crate: crate_name,
index f67f10491dfb1046a12caa4b71b920d55d7c736d..0af84daa0a7daf5011ebe5ce6c97a5dc82a0dfbf 100644 (file)
@@ -45,7 +45,7 @@ pub(crate) fn status(db: &RootDatabase, file_id: Option<FileId>) -> String {
         match krate {
             Some(krate) => {
                 let crate_graph = db.crate_graph();
-                let display_crate = |krate: CrateId| match &crate_graph[krate].declaration_name {
+                let display_crate = |krate: CrateId| match &crate_graph[krate].display_name {
                     Some(it) => format!("{}({:?})", it, krate),
                     None => format!("{:?}", krate),
                 };
index d1d3b12f81687fd2127e54c10882f9394dc33c31..a89993a2b2f0973734f97134f0a0c5156c37b2a6 100644 (file)
@@ -36,12 +36,8 @@ pub fn diagnostics(path: &Path, load_output_dirs: bool, with_proc_macro: bool) -
     for module in work {
         let file_id = module.definition_source(db).file_id.original_file(db);
         if !visited_files.contains(&file_id) {
-            let crate_name = module
-                .krate()
-                .declaration_name(db)
-                .as_ref()
-                .map(ToString::to_string)
-                .unwrap_or_else(|| "unknown".to_string());
+            let crate_name =
+                module.krate().display_name(db).as_deref().unwrap_or("unknown").to_string();
             println!("processing crate: {}, module: {}", crate_name, _vfs.file_path(file_id));
             for diagnostic in analysis.diagnostics(&DiagnosticsConfig::default(), file_id).unwrap()
             {