Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/inlay_hints/binding_mode.rs')
-rw-r--r--crates/ide/src/inlay_hints/binding_mode.rs29
1 files changed, 27 insertions, 2 deletions
diff --git a/crates/ide/src/inlay_hints/binding_mode.rs b/crates/ide/src/inlay_hints/binding_mode.rs
index 5afb98cb1c..ed2bd8d2a8 100644
--- a/crates/ide/src/inlay_hints/binding_mode.rs
+++ b/crates/ide/src/inlay_hints/binding_mode.rs
@@ -106,7 +106,7 @@ pub(super) fn hints(
InlayHintPosition::Before => h.range.start(),
InlayHintPosition::After => h.range.end(),
},
- h.label.parts.iter().map(|p| &*p.text).collect(),
+ h.label.parts.iter().map(|p| &*p.text).chain(h.pad_right.then_some(" ")).collect(),
);
}
let edit = edit.finish();
@@ -118,8 +118,10 @@ pub(super) fn hints(
#[cfg(test)]
mod tests {
+ use expect_test::expect;
+
use crate::{
- inlay_hints::tests::{check_with_config, DISABLED_CONFIG},
+ inlay_hints::tests::{check_edit, check_with_config, DISABLED_CONFIG},
InlayHintsConfig,
};
@@ -194,4 +196,27 @@ fn foo(s @ Struct { field, .. }: &Struct) {}
"#,
);
}
+
+ #[test]
+ fn edits() {
+ check_edit(
+ InlayHintsConfig { binding_mode_hints: true, ..DISABLED_CONFIG },
+ r#"
+fn main() {
+ match &(0,) {
+ (x,) | (x,) => (),
+ ((x,) | (x,)) => (),
+ }
+}
+"#,
+ expect![[r#"
+ fn main() {
+ match &(0,) {
+ &(&((ref x,) | (ref x,))) => (),
+ &((ref x,) | (ref x,)) => (),
+ }
+ }
+ "#]],
+ );
+ }
}