From 99952f3be254394a5c70ce8fb8436d76c779ed71 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Fri, 2 Oct 2020 21:16:22 +0300 Subject: Fix the hover dash issues --- crates/base_db/src/fixture.rs | 6 +++--- crates/base_db/src/input.rs | 4 ++-- crates/hir/src/code_model.rs | 4 ++-- crates/project_model/src/lib.rs | 5 +++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/crates/base_db/src/fixture.rs b/crates/base_db/src/fixture.rs index 31560bc09..72f1fd667 100644 --- a/crates/base_db/src/fixture.rs +++ b/crates/base_db/src/fixture.rs @@ -154,15 +154,15 @@ impl ChangeFixture { assert!(meta.path.starts_with(&source_root_prefix)); if let Some(krate) = meta.krate { + let crate_name = CrateName::normalize_dashes(&krate); let crate_id = crate_graph.add_crate_root( file_id, meta.edition, - Some(krate.clone()), + Some(crate_name.clone()), meta.cfg, meta.env, Default::default(), ); - let crate_name = CrateName::normalize_dashes(&krate); let prev = crates.insert(crate_name.clone(), crate_id); assert!(prev.is_none()); for dep in meta.deps { @@ -187,7 +187,7 @@ impl ChangeFixture { crate_graph.add_crate_root( crate_root, Edition::Edition2018, - Some("test".to_string()), + Some(CrateName::new("test").unwrap()), default_cfg, Env::default(), Default::default(), diff --git a/crates/base_db/src/input.rs b/crates/base_db/src/input.rs index 9a61f1d56..251a7b245 100644 --- a/crates/base_db/src/input.rs +++ b/crates/base_db/src/input.rs @@ -130,7 +130,7 @@ pub struct CrateData { /// The name to display to the end user. /// This actual crate name can be different in a particular dependent crate /// or may even be missing for some cases, such as a dummy crate for the code snippet. - pub display_name: Option, + pub display_name: Option, pub cfg_options: CfgOptions, pub env: Env, pub dependencies: Vec, @@ -159,7 +159,7 @@ impl CrateGraph { &mut self, file_id: FileId, edition: Edition, - display_name: Option, + display_name: Option, cfg_options: CfgOptions, env: Env, proc_macro: Vec<(SmolStr, Arc)>, diff --git a/crates/hir/src/code_model.rs b/crates/hir/src/code_model.rs index 5721a66c4..f3388da32 100644 --- a/crates/hir/src/code_model.rs +++ b/crates/hir/src/code_model.rs @@ -2,7 +2,7 @@ use std::{iter, sync::Arc}; use arrayvec::ArrayVec; -use base_db::{CrateId, Edition, FileId}; +use base_db::{CrateId, CrateName, Edition, FileId}; use either::Either; use hir_def::{ adt::ReprKind, @@ -98,7 +98,7 @@ impl Crate { db.crate_graph()[self.id].edition } - pub fn display_name(self, db: &dyn HirDatabase) -> Option { + pub fn display_name(self, db: &dyn HirDatabase) -> Option { db.crate_graph()[self.id].display_name.clone() } diff --git a/crates/project_model/src/lib.rs b/crates/project_model/src/lib.rs index 258f60e28..d1e7602fc 100644 --- a/crates/project_model/src/lib.rs +++ b/crates/project_model/src/lib.rs @@ -411,7 +411,7 @@ impl ProjectWorkspace { let crate_id = crate_graph.add_crate_root( file_id, edition, - Some(cargo[pkg].name.clone()), + Some(CrateName::normalize_dashes(&cargo[pkg].name)), cfg_options, env, proc_macro.clone(), @@ -546,7 +546,8 @@ fn sysroot_to_crate_graph( let env = Env::default(); let proc_macro = vec![]; - let name = sysroot[krate].name.clone(); + let name = CrateName::new(&sysroot[krate].name) + .expect("Sysroot crates' names do not contain dashes"); let crate_id = crate_graph.add_crate_root( file_id, Edition::Edition2018, -- cgit v1.2.3