diff options
-rw-r--r-- | crates/ra_ide/src/inlay_hints.rs | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/crates/ra_ide/src/inlay_hints.rs b/crates/ra_ide/src/inlay_hints.rs index 46ddc528e..81fe274ad 100644 --- a/crates/ra_ide/src/inlay_hints.rs +++ b/crates/ra_ide/src/inlay_hints.rs | |||
@@ -156,15 +156,15 @@ fn get_param_name_hints( | |||
156 | .params(sema.db) | 156 | .params(sema.db) |
157 | .into_iter() | 157 | .into_iter() |
158 | .zip(args) | 158 | .zip(args) |
159 | .filter_map(|((param, _ty), arg)| match param? { | 159 | .filter_map(|((param, _ty), arg)| { |
160 | Either::Left(self_param) => Some((self_param.to_string(), arg)), | 160 | let param_name = match param? { |
161 | Either::Right(pat) => { | 161 | Either::Left(self_param) => self_param.to_string(), |
162 | let param_name = match pat { | 162 | Either::Right(pat) => match pat { |
163 | ast::Pat::IdentPat(it) => it.name()?.to_string(), | 163 | ast::Pat::IdentPat(it) => it.name()?.to_string(), |
164 | it => it.to_string(), | 164 | _ => return None, |
165 | }; | 165 | }, |
166 | Some((param_name, arg)) | 166 | }; |
167 | } | 167 | Some((param_name, arg)) |
168 | }) | 168 | }) |
169 | .filter(|(param_name, arg)| should_show_param_name_hint(sema, &callable, ¶m_name, &arg)) | 169 | .filter(|(param_name, arg)| should_show_param_name_hint(sema, &callable, ¶m_name, &arg)) |
170 | .map(|(param_name, arg)| InlayHint { | 170 | .map(|(param_name, arg)| InlayHint { |
@@ -707,6 +707,8 @@ fn different_order(param: &Param) {} | |||
707 | fn different_order_mut(param: &mut Param) {} | 707 | fn different_order_mut(param: &mut Param) {} |
708 | fn has_underscore(_param: bool) {} | 708 | fn has_underscore(_param: bool) {} |
709 | fn enum_matches_param_name(completion_kind: CompletionKind) {} | 709 | fn enum_matches_param_name(completion_kind: CompletionKind) {} |
710 | fn param_destructuring_omitted_1((a, b): (u32, u32)) {} | ||
711 | fn param_destructuring_omitted_2(TestVarContainer { test_var: _ }: TestVarContainer) {} | ||
710 | 712 | ||
711 | fn twiddle(twiddle: bool) {} | 713 | fn twiddle(twiddle: bool) {} |
712 | fn doo(_doo: bool) {} | 714 | fn doo(_doo: bool) {} |
@@ -746,6 +748,10 @@ fn main() { | |||
746 | let b: f64 = 4.0; | 748 | let b: f64 = 4.0; |
747 | let _: f64 = a.div_euclid(b); | 749 | let _: f64 = a.div_euclid(b); |
748 | let _: f64 = a.abs_sub(b); | 750 | let _: f64 = a.abs_sub(b); |
751 | |||
752 | let range: (u32, u32) = (3, 5); | ||
753 | param_destructuring_omitted_1(range); | ||
754 | param_destructuring_omitted_2(container); | ||
749 | }"#, | 755 | }"#, |
750 | ); | 756 | ); |
751 | } | 757 | } |