Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_completion/src/tests.rs')
-rw-r--r--crates/ide_completion/src/tests.rs31
1 files changed, 27 insertions, 4 deletions
diff --git a/crates/ide_completion/src/tests.rs b/crates/ide_completion/src/tests.rs
index b8d60dfd2c..5ef6829a05 100644
--- a/crates/ide_completion/src/tests.rs
+++ b/crates/ide_completion/src/tests.rs
@@ -75,13 +75,13 @@ pub(crate) const TEST_CONFIG: CompletionConfig = CompletionConfig {
},
};
-pub(crate) fn completion_list(code: &str) -> String {
- completion_list_with_config(TEST_CONFIG, code)
+pub(crate) fn completion_list(ra_fixture: &str) -> String {
+ completion_list_with_config(TEST_CONFIG, ra_fixture)
}
-fn completion_list_with_config(config: CompletionConfig, code: &str) -> String {
+fn completion_list_with_config(config: CompletionConfig, ra_fixture: &str) -> String {
// filter out all but one builtintype completion for smaller test outputs
- let items = get_all_items(config, code);
+ let items = get_all_items(config, ra_fixture);
let mut bt_seen = false;
let items = items
.into_iter()
@@ -227,3 +227,26 @@ fn test_no_completions_required() {
cov_mark::check!(no_completion_required);
check_no_completion(r#"fn foo() { for i i$0 }"#);
}
+
+#[test]
+fn regression_10042() {
+ completion_list(
+ r#"
+macro_rules! preset {
+ ($($x:ident)&&*) => {
+ {
+ let mut v = Vec::new();
+ $(
+ v.push($x.into());
+ )*
+ v
+ }
+ };
+}
+
+fn foo() {
+ preset!(foo$0);
+}
+"#,
+ );
+}