mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 13:51:31 +00:00
Add convert tuple struct to named struct assist
This commit is contained in:
parent
d3a112d68c
commit
8d4be829e0
5 changed files with 397 additions and 9 deletions
|
@ -430,6 +430,15 @@ impl<'a> FindUsages<'a> {
|
|||
sink: &mut dyn FnMut(FileId, FileReference) -> bool,
|
||||
) -> bool {
|
||||
match NameRefClass::classify(self.sema, &name_ref) {
|
||||
Some(NameRefClass::Definition(def)) if &def == self.def => {
|
||||
let FileRange { file_id, range } = self.sema.original_range(name_ref.syntax());
|
||||
let reference = FileReference {
|
||||
range,
|
||||
name: ast::NameLike::NameRef(name_ref.clone()),
|
||||
access: reference_access(&def, &name_ref),
|
||||
};
|
||||
sink(file_id, reference)
|
||||
}
|
||||
Some(NameRefClass::Definition(Definition::SelfType(impl_))) => {
|
||||
let ty = impl_.self_ty(self.sema.db);
|
||||
|
||||
|
@ -448,15 +457,6 @@ impl<'a> FindUsages<'a> {
|
|||
|
||||
false
|
||||
}
|
||||
Some(NameRefClass::Definition(def)) if &def == self.def => {
|
||||
let FileRange { file_id, range } = self.sema.original_range(name_ref.syntax());
|
||||
let reference = FileReference {
|
||||
range,
|
||||
name: ast::NameLike::NameRef(name_ref.clone()),
|
||||
access: reference_access(&def, &name_ref),
|
||||
};
|
||||
sink(file_id, reference)
|
||||
}
|
||||
Some(NameRefClass::FieldShorthand { local_ref: local, field_ref: field }) => {
|
||||
let FileRange { file_id, range } = self.sema.original_range(name_ref.syntax());
|
||||
let reference = match self.def {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue