Skip to content

Commit

Permalink
Auto merge of #18107 - Veykril:push-oopkquknxqxs, r=Veykril
Browse files Browse the repository at this point in the history
fix: Don't emit empty inlay hint parts
  • Loading branch information
bors committed Sep 12, 2024
2 parents 8cd0a27 + d1e4f73 commit 4fcad5a
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 38 deletions.
13 changes: 8 additions & 5 deletions src/tools/rust-analyzer/crates/ide/src/inlay_hints.rs
Original file line number Diff line number Diff line change
Expand Up @@ -577,11 +577,14 @@ impl HirWrite for InlayHintLabelBuilder<'_> {

impl InlayHintLabelBuilder<'_> {
fn make_new_part(&mut self) {
self.result.parts.push(InlayHintLabelPart {
text: take(&mut self.last_part),
linked_location: self.location.take(),
tooltip: None,
});
let text = take(&mut self.last_part);
if !text.is_empty() {
self.result.parts.push(InlayHintLabelPart {
text,
linked_location: self.location.take(),
tooltip: None,
});
}
}

fn finish(mut self) -> InlayHintLabel {
Expand Down
21 changes: 0 additions & 21 deletions src/tools/rust-analyzer/crates/ide/src/inlay_hints/chaining.rs
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,6 @@ fn main() {
(
147..172,
[
"",
InlayHintLabelPart {
text: "B",
linked_location: Some(
Expand All @@ -153,13 +152,11 @@ fn main() {
),
tooltip: "",
},
"",
],
),
(
147..154,
[
"",
InlayHintLabelPart {
text: "A",
linked_location: Some(
Expand All @@ -172,7 +169,6 @@ fn main() {
),
tooltip: "",
},
"",
],
),
]
Expand Down Expand Up @@ -223,7 +219,6 @@ fn main() {
(
143..190,
[
"",
InlayHintLabelPart {
text: "C",
linked_location: Some(
Expand All @@ -236,13 +231,11 @@ fn main() {
),
tooltip: "",
},
"",
],
),
(
143..179,
[
"",
InlayHintLabelPart {
text: "B",
linked_location: Some(
Expand All @@ -255,7 +248,6 @@ fn main() {
),
tooltip: "",
},
"",
],
),
]
Expand Down Expand Up @@ -290,7 +282,6 @@ fn main() {
(
143..190,
[
"",
InlayHintLabelPart {
text: "C",
linked_location: Some(
Expand All @@ -303,13 +294,11 @@ fn main() {
),
tooltip: "",
},
"",
],
),
(
143..179,
[
"",
InlayHintLabelPart {
text: "B",
linked_location: Some(
Expand All @@ -322,7 +311,6 @@ fn main() {
),
tooltip: "",
},
"",
],
),
]
Expand Down Expand Up @@ -358,7 +346,6 @@ fn main() {
(
246..283,
[
"",
InlayHintLabelPart {
text: "B",
linked_location: Some(
Expand Down Expand Up @@ -390,7 +377,6 @@ fn main() {
(
246..265,
[
"",
InlayHintLabelPart {
text: "A",
linked_location: Some(
Expand Down Expand Up @@ -563,7 +549,6 @@ fn main() {
),
tooltip: "",
},
"",
],
),
]
Expand Down Expand Up @@ -598,7 +583,6 @@ fn main() {
(
124..130,
[
"",
InlayHintLabelPart {
text: "Struct",
linked_location: Some(
Expand All @@ -611,13 +595,11 @@ fn main() {
),
tooltip: "",
},
"",
],
),
(
145..185,
[
"",
InlayHintLabelPart {
text: "Struct",
linked_location: Some(
Expand All @@ -630,13 +612,11 @@ fn main() {
),
tooltip: "",
},
"",
],
),
(
145..168,
[
"",
InlayHintLabelPart {
text: "Struct",
linked_location: Some(
Expand All @@ -649,7 +629,6 @@ fn main() {
),
tooltip: "",
},
"",
],
),
(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ pub(super) fn hints(
}
closing_token = block.r_curly_token()?;

let lifetime = label.lifetime().map_or_else(String::new, |it| it.to_string());
let lifetime = label.lifetime()?.to_string();

(lifetime, Some(label.syntax().text_range()))
} else if let Some(block) = ast::BlockExpr::cast(node.clone()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//! Tests live in [`bind_pat`][super::bind_pat] module.
use ide_db::famous_defs::FamousDefs;
use span::EditionedFileId;
use stdx::TupleExt;
use stdx::{never, TupleExt};
use syntax::ast::{self, AstNode};
use text_edit::{TextRange, TextSize};

Expand Down Expand Up @@ -63,17 +63,21 @@ pub(super) fn hints(
// force cache the source file, otherwise sema lookup will potentially panic
_ = sema.parse_or_expand(source.file());

let label = format!(
"{}{}",
match capture.kind() {
hir::CaptureKind::SharedRef => "&",
hir::CaptureKind::UniqueSharedRef => "&unique ",
hir::CaptureKind::MutableRef => "&mut ",
hir::CaptureKind::Move => "",
},
capture.display_place(sema.db)
);
if never!(label.is_empty()) {
continue;
}
let label = InlayHintLabel::simple(
format!(
"{}{}",
match capture.kind() {
hir::CaptureKind::SharedRef => "&",
hir::CaptureKind::UniqueSharedRef => "&unique ",
hir::CaptureKind::MutableRef => "&mut ",
hir::CaptureKind::Move => "",
},
capture.display_place(sema.db)
),
label,
None,
source.name().and_then(|name| {
name.syntax().original_file_range_opt(sema.db).map(TupleExt::head).map(Into::into)
Expand Down

0 comments on commit 4fcad5a

Please sign in to comment.