Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/hir-expand/src/name.rs7
-rw-r--r--crates/hir/src/lib.rs2
-rw-r--r--crates/ide/src/inlay_hints/implicit_drop.rs3
-rw-r--r--crates/ide/src/inlay_hints/param_name.rs8
4 files changed, 15 insertions, 5 deletions
diff --git a/crates/hir-expand/src/name.rs b/crates/hir-expand/src/name.rs
index 3ddc305f95..b511bc3c15 100644
--- a/crates/hir-expand/src/name.rs
+++ b/crates/hir-expand/src/name.rs
@@ -201,10 +201,15 @@ impl Name {
#[inline]
pub fn is_generated(&self) -> bool {
- self.as_str().starts_with("<ra@gennew>")
+ is_generated(self.as_str())
}
}
+#[inline]
+pub fn is_generated(name: &str) -> bool {
+ name.starts_with("<ra@gennew>")
+}
+
struct Display<'a> {
name: &'a Name,
edition: Edition,
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index d187763151..ce03d7f3cb 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -164,7 +164,7 @@ pub use {
},
inert_attr_macro::AttributeTemplate,
mod_path::{ModPath, PathKind, tool_path},
- name::Name,
+ name::{self, Name},
prettify_macro_expansion,
proc_macro::{ProcMacros, ProcMacrosBuilder},
tt,
diff --git a/crates/ide/src/inlay_hints/implicit_drop.rs b/crates/ide/src/inlay_hints/implicit_drop.rs
index f6b13cbe0b..9387573cf7 100644
--- a/crates/ide/src/inlay_hints/implicit_drop.rs
+++ b/crates/ide/src/inlay_hints/implicit_drop.rs
@@ -9,6 +9,7 @@ use hir::{
DefWithBody,
db::HirDatabase as _,
mir::{MirSpan, TerminatorKind},
+ name,
};
use ide_db::{FileRange, famous_defs::FamousDefs};
@@ -95,7 +96,7 @@ pub(super) fn hints(
};
let binding = &hir[binding_idx];
let name = binding.name.display_no_db(display_target.edition).to_smolstr();
- if name.starts_with("<ra@") {
+ if name::is_generated(&name) {
continue; // Ignore desugared variables
}
let mut label = InlayHintLabel::simple(
diff --git a/crates/ide/src/inlay_hints/param_name.rs b/crates/ide/src/inlay_hints/param_name.rs
index c780ce5864..f1689e5f9d 100644
--- a/crates/ide/src/inlay_hints/param_name.rs
+++ b/crates/ide/src/inlay_hints/param_name.rs
@@ -7,7 +7,7 @@
use std::iter::zip;
use either::Either;
-use hir::{EditionedFileId, Semantics};
+use hir::{EditionedFileId, Semantics, name};
use ide_db::{RootDatabase, famous_defs::FamousDefs};
use stdx::to_lower_snake_case;
@@ -197,13 +197,14 @@ fn should_hide_param_name_hint(
// parameter is a prefix/suffix of argument with _ splitting it off
// - param starts with `ra_fixture`
// - param is a well known name in a unary function
+ // - param is generated name
let param_name = param_name.trim_matches('_');
if param_name.is_empty() {
return true;
}
- if param_name.starts_with("ra_fixture") {
+ if param_name.starts_with("ra_fixture") || name::is_generated(param_name) {
return true;
}
@@ -608,6 +609,7 @@ impl Test {
fn test_func(mut foo: i32, bar: i32, msg: &str, _: i32, last: i32) -> i32 {
foo + bar
}
+async fn test_async(foo: i32, _: i32) {}
fn main() {
let not_literal = 1;
@@ -631,6 +633,8 @@ fn main() {
None,
//^^^^ docs
);
+ test_async(1, 2)
+ //^ foo
}"#,
);
}