Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/render.rs')
-rw-r--r--crates/ide-completion/src/render.rs47
1 files changed, 47 insertions, 0 deletions
diff --git a/crates/ide-completion/src/render.rs b/crates/ide-completion/src/render.rs
index 0f0fa115af..05fd26c4e8 100644
--- a/crates/ide-completion/src/render.rs
+++ b/crates/ide-completion/src/render.rs
@@ -1277,6 +1277,53 @@ fn main() { fo$0 }
}
#[test]
+ fn fn_detail_includes_variadics() {
+ check(
+ r#"
+unsafe extern "C" fn foo(a: u32, b: u32, ...) {}
+
+fn main() { fo$0 }
+"#,
+ SymbolKind::Function,
+ expect![[r#"
+ [
+ CompletionItem {
+ label: "foo(…)",
+ detail_left: None,
+ detail_right: Some(
+ "unsafe fn(u32, u32, ...)",
+ ),
+ source_range: 62..64,
+ delete: 62..64,
+ insert: "foo(${1:a}, ${2:b});$0",
+ kind: SymbolKind(
+ Function,
+ ),
+ lookup: "foo",
+ detail: "unsafe fn(u32, u32, ...)",
+ trigger_call_info: true,
+ },
+ CompletionItem {
+ label: "main()",
+ detail_left: None,
+ detail_right: Some(
+ "fn()",
+ ),
+ source_range: 62..64,
+ delete: 62..64,
+ insert: "main();$0",
+ kind: SymbolKind(
+ Function,
+ ),
+ lookup: "main",
+ detail: "fn()",
+ },
+ ]
+ "#]],
+ );
+ }
+
+ #[test]
fn enum_detail_just_name_for_unit() {
check(
r#"