mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 12:54:58 +00:00
feat: Closure capture inlay hints
This commit is contained in:
parent
0dd94d3b07
commit
8081a654da
10 changed files with 264 additions and 14 deletions
|
@ -2611,6 +2611,10 @@ impl LocalSource {
|
|||
self.source.file_id.original_file(db.upcast())
|
||||
}
|
||||
|
||||
pub fn file(&self) -> HirFileId {
|
||||
self.source.file_id
|
||||
}
|
||||
|
||||
pub fn name(&self) -> Option<ast::Name> {
|
||||
self.source.value.name()
|
||||
}
|
||||
|
@ -3232,6 +3236,21 @@ impl ClosureCapture {
|
|||
Local { parent: self.owner, binding_id: self.capture.local() }
|
||||
}
|
||||
|
||||
pub fn kind(&self) -> CaptureKind {
|
||||
match self.capture.kind() {
|
||||
hir_ty::CaptureKind::ByRef(
|
||||
hir_ty::mir::BorrowKind::Shallow | hir_ty::mir::BorrowKind::Shared,
|
||||
) => CaptureKind::SharedRef,
|
||||
hir_ty::CaptureKind::ByRef(hir_ty::mir::BorrowKind::Unique) => {
|
||||
CaptureKind::UniqueSharedRef
|
||||
}
|
||||
hir_ty::CaptureKind::ByRef(hir_ty::mir::BorrowKind::Mut { .. }) => {
|
||||
CaptureKind::MutableRef
|
||||
}
|
||||
hir_ty::CaptureKind::ByValue => CaptureKind::Move,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn display_kind(&self) -> &'static str {
|
||||
self.capture.display_kind()
|
||||
}
|
||||
|
@ -3241,6 +3260,13 @@ impl ClosureCapture {
|
|||
}
|
||||
}
|
||||
|
||||
pub enum CaptureKind {
|
||||
SharedRef,
|
||||
UniqueSharedRef,
|
||||
MutableRef,
|
||||
Move,
|
||||
}
|
||||
|
||||
#[derive(Clone, PartialEq, Eq, Debug)]
|
||||
pub struct Type {
|
||||
env: Arc<TraitEnvironment>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue