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.rs26
1 files changed, 16 insertions, 10 deletions
diff --git a/crates/ide-completion/src/tests.rs b/crates/ide-completion/src/tests.rs
index fdc3d9a13b..83606d21f5 100644
--- a/crates/ide-completion/src/tests.rs
+++ b/crates/ide-completion/src/tests.rs
@@ -26,9 +26,10 @@ mod visibility;
use base_db::SourceDatabase;
use expect_test::Expect;
-use hir::PrefixKind;
+use hir::db::HirDatabase;
+use hir::{PrefixKind, setup_tracing};
use ide_db::{
- FilePosition, RootDatabase, SnippetCap,
+ FilePosition, MiniCore, RootDatabase, SnippetCap,
imports::insert_use::{ImportGranularity, InsertUseConfig},
};
use itertools::Itertools;
@@ -89,6 +90,7 @@ pub(crate) const TEST_CONFIG: CompletionConfig<'_> = CompletionConfig {
exclude_traits: &[],
enable_auto_await: true,
enable_auto_iter: true,
+ minicore: MiniCore::default(),
};
pub(crate) fn completion_list(#[rust_analyzer::rust_fixture] ra_fixture: &str) -> String {
@@ -120,6 +122,8 @@ fn completion_list_with_config_raw(
include_keywords: bool,
trigger_character: Option<char>,
) -> Vec<CompletionItem> {
+ let _tracing = setup_tracing();
+
// filter out all but one built-in type completion for smaller test outputs
let items = get_all_items(config, ra_fixture, trigger_character);
items
@@ -241,12 +245,11 @@ pub(crate) fn check_edit_with_config(
let ra_fixture_after = trim_indent(ra_fixture_after);
let (db, position) = position(ra_fixture_before);
let completions: Vec<CompletionItem> =
- crate::completions(&db, &config, position, None).unwrap();
- let (completion,) = completions
- .iter()
- .filter(|it| it.lookup() == what)
- .collect_tuple()
- .unwrap_or_else(|| panic!("can't find {what:?} completion in {completions:#?}"));
+ hir::attach_db(&db, || crate::completions(&db, &config, position, None).unwrap());
+ let Some((completion,)) = completions.iter().filter(|it| it.lookup() == what).collect_tuple()
+ else {
+ panic!("can't find {what:?} completion in {completions:#?}")
+ };
let mut actual = db.file_text(position.file_id).text(&db).to_string();
let mut combined_edit = completion.text_edit.clone();
@@ -304,8 +307,11 @@ pub(crate) fn get_all_items(
trigger_character: Option<char>,
) -> Vec<CompletionItem> {
let (db, position) = position(code);
- let res = crate::completions(&db, &config, position, trigger_character)
- .map_or_else(Vec::default, Into::into);
+ let res = hir::attach_db(&db, || {
+ HirDatabase::zalsa_register_downcaster(&db);
+ crate::completions(&db, &config, position, trigger_character)
+ })
+ .map_or_else(Vec::default, Into::into);
// validate
res.iter().for_each(|it| {
let sr = it.source_range;