Skip to content

Commit f9c1336

Browse files
committed
More clarifications
1 parent bc287b8 commit f9c1336

File tree

6 files changed

+17
-17
lines changed

6 files changed

+17
-17
lines changed

crates/ide/src/doc_links.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ pub(crate) fn external_docs(
233233
let definition = match_ast! {
234234
match node {
235235
ast::NameRef(name_ref) => classify_name_ref(&sema, &name_ref).map(|d| d.definition(sema.db)),
236-
ast::Name(name) => classify_name(&sema, &name).map(|d| d.definition_or_reference(sema.db)),
236+
ast::Name(name) => classify_name(&sema, &name).map(|d| d.reference_or_definition(sema.db)),
237237
_ => None,
238238
}
239239
};

crates/ide/src/goto_definition.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ pub(crate) fn goto_definition(
4040
reference_definition(&sema, &name_ref).to_vec()
4141
},
4242
ast::Name(name) => {
43-
let def = classify_name(&sema, &name)?.definition_or_reference(sema.db);
43+
let def = classify_name(&sema, &name)?.reference_or_definition(sema.db);
4444
let nav = def.try_to_nav(sema.db)?;
4545
vec![nav]
4646
},

crates/ide/src/references.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ fn find_name(
132132
opt_name: Option<ast::Name>,
133133
) -> Option<RangeInfo<Definition>> {
134134
if let Some(name) = opt_name {
135-
let def = classify_name(sema, &name)?.definition_or_reference(sema.db);
135+
let def = classify_name(sema, &name)?.reference_or_definition(sema.db);
136136
let range = name.syntax().text_range();
137137
return Some(RangeInfo::new(range, def));
138138
}

crates/ide/src/syntax_highlighting.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -459,9 +459,9 @@ fn highlight_element(
459459
highlight_def(db, def) | HighlightModifier::Definition
460460
}
461461
Some(NameClass::ConstReference(def)) => highlight_def(db, def),
462-
Some(NameClass::PatFieldShorthand { field, .. }) => {
462+
Some(NameClass::PatFieldShorthand { field_ref, .. }) => {
463463
let mut h = HighlightTag::Field.into();
464-
if let Definition::Field(field) = field {
464+
if let Definition::Field(field) = field_ref {
465465
if let VariantDef::Union(_) = field.parent_def(db) {
466466
h |= HighlightModifier::Unsafe;
467467
}

crates/ide_db/src/defs.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,12 @@ impl Definition {
8181
pub enum NameClass {
8282
ExternCrate(Crate),
8383
Definition(Definition),
84-
/// `None` in `if let None = Some(82) {}`
84+
/// `None` in `if let None = Some(82) {}`.
8585
ConstReference(Definition),
86-
/// `field` in `if let Foo { field } = todo!() {}`
86+
/// `field` in `if let Foo { field } = foo`.
8787
PatFieldShorthand {
88-
local: Local,
89-
field: Definition,
88+
local_def: Local,
89+
field_ref: Definition,
9090
},
9191
}
9292

@@ -96,18 +96,18 @@ impl NameClass {
9696
NameClass::ExternCrate(krate) => Definition::ModuleDef(krate.root_module(db).into()),
9797
NameClass::Definition(it) => it,
9898
NameClass::ConstReference(_) => return None,
99-
/// Both `local` and `field` are definitions here, but only `local`
100-
/// is the definition which is introduced by this name.
101-
NameClass::PatFieldShorthand { local, field: _ } => Definition::Local(local),
99+
NameClass::PatFieldShorthand { local_def, field_ref: _ } => {
100+
Definition::Local(local_def)
101+
}
102102
};
103103
Some(res)
104104
}
105105

106-
pub fn definition_or_reference(self, db: &dyn HirDatabase) -> Definition {
106+
pub fn reference_or_definition(self, db: &dyn HirDatabase) -> Definition {
107107
match self {
108108
NameClass::ExternCrate(krate) => Definition::ModuleDef(krate.root_module(db).into()),
109109
NameClass::Definition(it) | NameClass::ConstReference(it) => it,
110-
NameClass::PatFieldShorthand { local: _, field } => field,
110+
NameClass::PatFieldShorthand { local_def: _, field_ref } => field_ref,
111111
}
112112
}
113113
}
@@ -165,7 +165,7 @@ pub fn classify_name(sema: &Semantics<RootDatabase>, name: &ast::Name) -> Option
165165
if record_pat_field.name_ref().is_none() {
166166
if let Some(field) = sema.resolve_record_pat_field(&record_pat_field) {
167167
let field = Definition::Field(field);
168-
return Some(NameClass::PatFieldShorthand { local, field });
168+
return Some(NameClass::PatFieldShorthand { local_def: local, field_ref: field });
169169
}
170170
}
171171
}

crates/ide_db/src/search.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,9 +314,9 @@ impl<'a> FindUsages<'a> {
314314

315315
fn found_name(&self, name: &ast::Name, sink: &mut dyn FnMut(Reference) -> bool) -> bool {
316316
match classify_name(self.sema, name) {
317-
Some(NameClass::PatFieldShorthand { local: _, field }) => {
317+
Some(NameClass::PatFieldShorthand { local_def: _, field_ref }) => {
318318
let reference = match self.def {
319-
Definition::Field(_) if &field == self.def => Reference {
319+
Definition::Field(_) if &field_ref == self.def => Reference {
320320
file_range: self.sema.original_range(name.syntax()),
321321
kind: ReferenceKind::FieldShorthandForField,
322322
// FIXME: mutable patterns should have `Write` access

0 commit comments

Comments
 (0)