Add convert tuple struct to named struct assist

This commit is contained in:
unexge 2021-04-04 00:04:31 +03:00
parent d3a112d68c
commit 8d4be829e0
5 changed files with 397 additions and 9 deletions

View file

@ -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 {