Skip to content

Commit ebc6170

Browse files
committed
use .expr() to remove ref
1 parent ae416f3 commit ebc6170

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

crates/ra_ide/src/inlay_hints.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -254,14 +254,19 @@ fn should_show_param_hint(
254254
}
255255

256256
fn is_argument_similar_to_param(argument: &ast::Expr, param_name: &str) -> bool {
257-
let argument_string = if let ast::Expr::RefExpr(ref_expr) = argument {
258-
ref_expr.syntax().last_token().expect("RefExpr should have a last_token").to_string()
259-
} else {
260-
argument.syntax().to_string()
261-
};
257+
let argument_string = remove_ref(argument.clone()).syntax().to_string();
262258
argument_string.starts_with(&param_name) || argument_string.ends_with(&param_name)
263259
}
264260

261+
fn remove_ref(expr: ast::Expr) -> ast::Expr {
262+
if let ast::Expr::RefExpr(ref_expr) = &expr {
263+
if let Some(inner) = ref_expr.expr() {
264+
return inner;
265+
}
266+
}
267+
expr
268+
}
269+
265270
fn is_obvious_param(param_name: &str) -> bool {
266271
let is_obvious_param_name = match param_name {
267272
"predicate" | "value" | "pat" | "rhs" | "other" => true,

0 commit comments

Comments
 (0)