From 22566ecd1b3f64c0b5d577ea3dac161ebb23eda4 Mon Sep 17 00:00:00 2001 From: Jacob Pratt Date: Sun, 10 Jan 2021 03:05:52 -0500 Subject: Short-circuit boolean operation --- crates/ide/src/inlay_hints.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'crates/ide/src') diff --git a/crates/ide/src/inlay_hints.rs b/crates/ide/src/inlay_hints.rs index ddab9a168..2ad8c33f2 100644 --- a/crates/ide/src/inlay_hints.rs +++ b/crates/ide/src/inlay_hints.rs @@ -354,17 +354,21 @@ fn is_argument_similar_to_param_name( match get_string_representation(argument) { None => false, Some(argument_string) => { + // 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 starts_with_pattern = param_name.bytes().all( |expected| matches!(arg_bytes.next(), Some(actual) if expected.eq_ignore_ascii_case(&actual)), ); + if starts_with_pattern { + return true; + } + + // Does the argument name end with the parameter name? let mut arg_bytes = argument_string.bytes(); - let ends_with_pattern = param_name.bytes().rev().all( + param_name.bytes().rev().all( |expected| matches!(arg_bytes.next_back(), Some(actual) if expected.eq_ignore_ascii_case(&actual)), - ); - - starts_with_pattern || ends_with_pattern + ) } } } -- cgit v1.2.3