Skip to content

Commit 3b3063f

Browse files
bors[bot]Veykril
andauthored
Merge #10741
10741: internal: Flatten Definition::ModuleDef variant r=Veykril a=Veykril Co-authored-by: Lukas Wirth <[email protected]>
2 parents 1e8d1e8 + 7776aad commit 3b3063f

32 files changed

+710
-703
lines changed

crates/hir/src/display.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -421,10 +421,7 @@ impl HirDisplay for Static {
421421
if data.mutable {
422422
write!(f, "mut ")?;
423423
}
424-
match &data.name {
425-
Some(name) => write!(f, "{}: ", name)?,
426-
None => write!(f, "_: ")?,
427-
}
424+
write!(f, "{}: ", &data.name)?;
428425
data.type_ref.hir_fmt(f)?;
429426
Ok(())
430427
}

crates/hir/src/lib.rs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -316,17 +316,18 @@ impl ModuleDef {
316316
}
317317

318318
pub fn name(self, db: &dyn HirDatabase) -> Option<Name> {
319-
match self {
320-
ModuleDef::Adt(it) => Some(it.name(db)),
321-
ModuleDef::Trait(it) => Some(it.name(db)),
322-
ModuleDef::Function(it) => Some(it.name(db)),
323-
ModuleDef::Variant(it) => Some(it.name(db)),
324-
ModuleDef::TypeAlias(it) => Some(it.name(db)),
325-
ModuleDef::Module(it) => it.name(db),
326-
ModuleDef::Const(it) => it.name(db),
319+
let name = match self {
320+
ModuleDef::Module(it) => it.name(db)?,
321+
ModuleDef::Const(it) => it.name(db)?,
322+
ModuleDef::Adt(it) => it.name(db),
323+
ModuleDef::Trait(it) => it.name(db),
324+
ModuleDef::Function(it) => it.name(db),
325+
ModuleDef::Variant(it) => it.name(db),
326+
ModuleDef::TypeAlias(it) => it.name(db),
327327
ModuleDef::Static(it) => it.name(db),
328-
ModuleDef::BuiltinType(it) => Some(it.name()),
329-
}
328+
ModuleDef::BuiltinType(it) => it.name(),
329+
};
330+
Some(name)
330331
}
331332

332333
pub fn diagnostics(self, db: &dyn HirDatabase) -> Vec<AnyDiagnostic> {
@@ -1036,7 +1037,7 @@ impl DefWithBody {
10361037
pub fn name(self, db: &dyn HirDatabase) -> Option<Name> {
10371038
match self {
10381039
DefWithBody::Function(f) => Some(f.name(db)),
1039-
DefWithBody::Static(s) => s.name(db),
1040+
DefWithBody::Static(s) => Some(s.name(db)),
10401041
DefWithBody::Const(c) => c.name(db),
10411042
}
10421043
}
@@ -1484,7 +1485,7 @@ impl Static {
14841485
Module { id: self.id.lookup(db.upcast()).module(db.upcast()) }
14851486
}
14861487

1487-
pub fn name(self, db: &dyn HirDatabase) -> Option<Name> {
1488+
pub fn name(self, db: &dyn HirDatabase) -> Name {
14881489
db.static_data(self.id).name.clone()
14891490
}
14901491

crates/hir_def/src/data.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ impl ConstData {
273273

274274
#[derive(Debug, Clone, PartialEq, Eq)]
275275
pub struct StaticData {
276-
pub name: Option<Name>,
276+
pub name: Name,
277277
pub type_ref: Interned<TypeRef>,
278278
pub visibility: RawVisibility,
279279
pub mutable: bool,
@@ -287,7 +287,7 @@ impl StaticData {
287287
let statik = &item_tree[node.id.value];
288288

289289
Arc::new(StaticData {
290-
name: Some(statik.name.clone()),
290+
name: statik.name.clone(),
291291
type_ref: statik.type_ref.clone(),
292292
visibility: item_tree[statik.visibility].clone(),
293293
mutable: statik.mutable,

crates/hir_ty/src/db.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,7 @@ pub trait HirDatabase: DefDatabase + Upcast<dyn DefDatabase> {
162162
fn infer_wait(db: &dyn HirDatabase, def: DefWithBodyId) -> Arc<InferenceResult> {
163163
let _p = profile::span("infer:wait").detail(|| match def {
164164
DefWithBodyId::FunctionId(it) => db.function_data(it).name.to_string(),
165-
DefWithBodyId::StaticId(it) => {
166-
db.static_data(it).name.clone().unwrap_or_else(Name::missing).to_string()
167-
}
165+
DefWithBodyId::StaticId(it) => db.static_data(it).name.clone().to_string(),
168166
DefWithBodyId::ConstId(it) => {
169167
db.const_data(it).name.clone().unwrap_or_else(Name::missing).to_string()
170168
}

crates/hir_ty/src/diagnostics/decl_check.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -581,10 +581,7 @@ impl<'a> DeclValidator<'a> {
581581
return;
582582
}
583583

584-
let name = match &data.name {
585-
Some(name) => name,
586-
None => return,
587-
};
584+
let name = &data.name;
588585

589586
let static_name = name.to_string();
590587
let replacement = if let Some(new_name) = to_upper_snake_case(&static_name) {

crates/ide/src/call_hierarchy.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,11 @@ pub(crate) fn incoming_calls(
4747
.find_nodes_at_offset_with_descend(file, offset)
4848
.filter_map(move |node| match node {
4949
ast::NameLike::NameRef(name_ref) => match NameRefClass::classify(sema, &name_ref)? {
50-
NameRefClass::Definition(
51-
def @ Definition::ModuleDef(hir::ModuleDef::Function(_)),
52-
) => Some(def),
50+
NameRefClass::Definition(def @ Definition::Function(_)) => Some(def),
5351
_ => None,
5452
},
5553
ast::NameLike::Name(name) => match NameClass::classify(sema, &name)? {
56-
NameClass::Definition(def @ Definition::ModuleDef(hir::ModuleDef::Function(_))) => {
57-
Some(def)
58-
}
54+
NameClass::Definition(def @ Definition::Function(_)) => Some(def),
5955
_ => None,
6056
},
6157
ast::NameLike::Lifetime(_) => None,

crates/ide/src/display/navigation_target.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,13 +196,21 @@ impl ToNav for FileSymbol {
196196
impl TryToNav for Definition {
197197
fn try_to_nav(&self, db: &RootDatabase) -> Option<NavigationTarget> {
198198
match self {
199+
Definition::Local(it) => Some(it.to_nav(db)),
200+
Definition::Label(it) => Some(it.to_nav(db)),
201+
Definition::Module(it) => Some(it.to_nav(db)),
199202
Definition::Macro(it) => it.try_to_nav(db),
200203
Definition::Field(it) => it.try_to_nav(db),
201-
Definition::ModuleDef(it) => it.try_to_nav(db),
202204
Definition::SelfType(it) => it.try_to_nav(db),
203-
Definition::Local(it) => Some(it.to_nav(db)),
204205
Definition::GenericParam(it) => it.try_to_nav(db),
205-
Definition::Label(it) => Some(it.to_nav(db)),
206+
Definition::Function(it) => it.try_to_nav(db),
207+
Definition::Adt(it) => it.try_to_nav(db),
208+
Definition::Variant(it) => it.try_to_nav(db),
209+
Definition::Const(it) => it.try_to_nav(db),
210+
Definition::Static(it) => it.try_to_nav(db),
211+
Definition::Trait(it) => it.try_to_nav(db),
212+
Definition::TypeAlias(it) => it.try_to_nav(db),
213+
Definition::BuiltinType(_) => None,
206214
}
207215
}
208216
}

0 commit comments

Comments
 (0)