From 5e81892d4dd3b8353d11df8b9239432b5aa10512 Mon Sep 17 00:00:00 2001 From: Jacob Pratt Date: Sun, 10 Jan 2021 04:14:39 -0500 Subject: Skip leading underscores unconditionally --- crates/ide/src/inlay_hints.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'crates/ide/src/inlay_hints.rs') diff --git a/crates/ide/src/inlay_hints.rs b/crates/ide/src/inlay_hints.rs index 2ad8c33f2..3e9a65d9c 100644 --- a/crates/ide/src/inlay_hints.rs +++ b/crates/ide/src/inlay_hints.rs @@ -354,8 +354,11 @@ fn is_argument_similar_to_param_name( match get_string_representation(argument) { None => false, Some(argument_string) => { + let num_leading_underscores = + argument_string.bytes().take_while(|&c| c == b'_').count(); + // Does the argument name begin with the parameter name? Ignore leading underscores. - let mut arg_bytes = argument_string.bytes().skip_while(|&c| c == b'_'); + let mut arg_bytes = argument_string.bytes().skip(num_leading_underscores); let starts_with_pattern = param_name.bytes().all( |expected| matches!(arg_bytes.next(), Some(actual) if expected.eq_ignore_ascii_case(&actual)), ); @@ -365,7 +368,7 @@ fn is_argument_similar_to_param_name( } // Does the argument name end with the parameter name? - let mut arg_bytes = argument_string.bytes(); + let mut arg_bytes = argument_string.bytes().skip(num_leading_underscores); param_name.bytes().rev().all( |expected| matches!(arg_bytes.next_back(), Some(actual) if expected.eq_ignore_ascii_case(&actual)), ) -- cgit v1.2.3