Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/tests/incremental.rs')
-rw-r--r--crates/hir-ty/src/tests/incremental.rs277
1 files changed, 154 insertions, 123 deletions
diff --git a/crates/hir-ty/src/tests/incremental.rs b/crates/hir-ty/src/tests/incremental.rs
index 14ec161c91..1457bb2e10 100644
--- a/crates/hir-ty/src/tests/incremental.rs
+++ b/crates/hir-ty/src/tests/incremental.rs
@@ -4,7 +4,7 @@ use hir_def::{DefWithBodyId, ModuleDefId};
use salsa::EventKind;
use test_fixture::WithFixture;
-use crate::{db::HirDatabase, test_db::TestDB};
+use crate::{InferenceResult, method_resolution::TraitImpls, test_db::TestDB};
use super::visit_module;
@@ -22,32 +22,32 @@ fn foo() -> i32 {
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let crate_def_map = module.def_map(&db);
- visit_module(&db, crate_def_map, module.local_id, &mut |def| {
+ visit_module(&db, crate_def_map, module, &mut |def| {
if let ModuleDefId::FunctionId(it) = def {
- db.infer(it.into());
+ InferenceResult::for_body(&db, it.into());
}
});
},
- &[("infer_shim", 1)],
+ &[("InferenceResult::for_body_", 1)],
expect_test::expect![[r#"
[
- "source_root_crates_shim",
"crate_local_def_map",
"file_item_tree_query",
"ast_id_map_shim",
"parse_shim",
"real_span_map_shim",
- "infer_shim",
+ "InferenceResult::for_body_",
"function_signature_shim",
"function_signature_with_source_map_shim",
- "attrs_shim",
+ "AttrFlags::query_",
"body_shim",
"body_with_source_map_shim",
- "trait_environment_shim",
- "return_type_impl_traits_shim",
- "expr_scopes_shim",
- "lang_item",
+ "trait_environment_query",
+ "lang_items",
"crate_lang_items",
+ "GenericPredicates::query_with_diagnostics_",
+ "ImplTraits::return_type_impl_traits_",
+ "expr_scopes_shim",
]
"#]],
);
@@ -66,20 +66,20 @@ fn foo() -> i32 {
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let crate_def_map = module.def_map(&db);
- visit_module(&db, crate_def_map, module.local_id, &mut |def| {
+ visit_module(&db, crate_def_map, module, &mut |def| {
if let ModuleDefId::FunctionId(it) = def {
- db.infer(it.into());
+ InferenceResult::for_body(&db, it.into());
}
});
},
- &[("infer_shim", 0)],
+ &[("InferenceResult::for_body_", 0)],
expect_test::expect![[r#"
[
"parse_shim",
"ast_id_map_shim",
"file_item_tree_query",
"real_span_map_shim",
- "attrs_shim",
+ "AttrFlags::query_",
"function_signature_with_source_map_shim",
"function_signature_shim",
"body_with_source_map_shim",
@@ -109,49 +109,51 @@ fn baz() -> i32 {
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let crate_def_map = module.def_map(&db);
- visit_module(&db, crate_def_map, module.local_id, &mut |def| {
+ visit_module(&db, crate_def_map, module, &mut |def| {
if let ModuleDefId::FunctionId(it) = def {
- db.infer(it.into());
+ InferenceResult::for_body(&db, it.into());
}
});
},
- &[("infer_shim", 3)],
+ &[("InferenceResult::for_body_", 3)],
expect_test::expect![[r#"
[
- "source_root_crates_shim",
"crate_local_def_map",
"file_item_tree_query",
"ast_id_map_shim",
"parse_shim",
"real_span_map_shim",
- "infer_shim",
+ "InferenceResult::for_body_",
"function_signature_shim",
"function_signature_with_source_map_shim",
- "attrs_shim",
+ "AttrFlags::query_",
"body_shim",
"body_with_source_map_shim",
- "trait_environment_shim",
- "return_type_impl_traits_shim",
- "expr_scopes_shim",
- "lang_item",
+ "trait_environment_query",
+ "lang_items",
"crate_lang_items",
- "attrs_shim",
- "attrs_shim",
- "infer_shim",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
+ "GenericPredicates::query_with_diagnostics_",
+ "ImplTraits::return_type_impl_traits_",
+ "expr_scopes_shim",
+ "InferenceResult::for_body_",
"function_signature_shim",
"function_signature_with_source_map_shim",
"body_shim",
"body_with_source_map_shim",
- "trait_environment_shim",
- "return_type_impl_traits_shim",
+ "trait_environment_query",
+ "GenericPredicates::query_with_diagnostics_",
+ "ImplTraits::return_type_impl_traits_",
"expr_scopes_shim",
- "infer_shim",
+ "InferenceResult::for_body_",
"function_signature_shim",
"function_signature_with_source_map_shim",
"body_shim",
"body_with_source_map_shim",
- "trait_environment_shim",
- "return_type_impl_traits_shim",
+ "trait_environment_query",
+ "GenericPredicates::query_with_diagnostics_",
+ "ImplTraits::return_type_impl_traits_",
"expr_scopes_shim",
]
"#]],
@@ -176,31 +178,31 @@ fn baz() -> i32 {
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let crate_def_map = module.def_map(&db);
- visit_module(&db, crate_def_map, module.local_id, &mut |def| {
+ visit_module(&db, crate_def_map, module, &mut |def| {
if let ModuleDefId::FunctionId(it) = def {
- db.infer(it.into());
+ InferenceResult::for_body(&db, it.into());
}
});
},
- &[("infer_shim", 1)],
+ &[("InferenceResult::for_body_", 1)],
expect_test::expect![[r#"
[
"parse_shim",
"ast_id_map_shim",
"file_item_tree_query",
"real_span_map_shim",
- "attrs_shim",
+ "AttrFlags::query_",
"function_signature_with_source_map_shim",
"function_signature_shim",
"body_with_source_map_shim",
"body_shim",
- "attrs_shim",
- "attrs_shim",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
"function_signature_with_source_map_shim",
"function_signature_shim",
"body_with_source_map_shim",
"body_shim",
- "infer_shim",
+ "InferenceResult::for_body_",
"expr_scopes_shim",
"function_signature_with_source_map_shim",
"function_signature_shim",
@@ -230,18 +232,21 @@ $0",
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let _crate_def_map = module.def_map(&db);
- db.trait_impls_in_crate(module.krate());
+ TraitImpls::for_crate(&db, module.krate(&db));
},
- &[("trait_impls_in_crate_shim", 1)],
+ &[("TraitImpls::for_crate_", 1)],
expect_test::expect![[r#"
[
- "source_root_crates_shim",
"crate_local_def_map",
"file_item_tree_query",
"ast_id_map_shim",
"parse_shim",
"real_span_map_shim",
- "trait_impls_in_crate_shim",
+ "TraitImpls::for_crate_",
+ "lang_items",
+ "crate_lang_items",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
]
"#]],
);
@@ -267,9 +272,9 @@ pub struct NewStruct {
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let _crate_def_map = module.def_map(&db);
- db.trait_impls_in_crate(module.krate());
+ TraitImpls::for_crate(&db, module.krate(&db));
},
- &[("trait_impls_in_crate_shim", 1)],
+ &[("TraitImpls::for_crate_", 1)],
expect_test::expect![[r#"
[
"parse_shim",
@@ -277,7 +282,11 @@ pub struct NewStruct {
"file_item_tree_query",
"real_span_map_shim",
"crate_local_def_map",
- "trait_impls_in_crate_shim",
+ "TraitImpls::for_crate_",
+ "crate_lang_items",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
]
"#]],
);
@@ -302,18 +311,21 @@ $0",
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let _crate_def_map = module.def_map(&db);
- db.trait_impls_in_crate(module.krate());
+ TraitImpls::for_crate(&db, module.krate(&db));
},
- &[("trait_impls_in_crate_shim", 1)],
+ &[("TraitImpls::for_crate_", 1)],
expect_test::expect![[r#"
[
- "source_root_crates_shim",
"crate_local_def_map",
"file_item_tree_query",
"ast_id_map_shim",
"parse_shim",
"real_span_map_shim",
- "trait_impls_in_crate_shim",
+ "TraitImpls::for_crate_",
+ "lang_items",
+ "crate_lang_items",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
]
"#]],
);
@@ -340,9 +352,9 @@ pub enum SomeEnum {
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let _crate_def_map = module.def_map(&db);
- db.trait_impls_in_crate(module.krate());
+ TraitImpls::for_crate(&db, module.krate(&db));
},
- &[("trait_impls_in_crate_shim", 1)],
+ &[("TraitImpls::for_crate_", 1)],
expect_test::expect![[r#"
[
"parse_shim",
@@ -350,7 +362,14 @@ pub enum SomeEnum {
"file_item_tree_query",
"real_span_map_shim",
"crate_local_def_map",
- "trait_impls_in_crate_shim",
+ "TraitImpls::for_crate_",
+ "crate_lang_items",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
+ "EnumVariants::of_",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
]
"#]],
);
@@ -375,18 +394,21 @@ $0",
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let _crate_def_map = module.def_map(&db);
- db.trait_impls_in_crate(module.krate());
+ TraitImpls::for_crate(&db, module.krate(&db));
},
- &[("trait_impls_in_crate_shim", 1)],
+ &[("TraitImpls::for_crate_", 1)],
expect_test::expect![[r#"
[
- "source_root_crates_shim",
"crate_local_def_map",
"file_item_tree_query",
"ast_id_map_shim",
"parse_shim",
"real_span_map_shim",
- "trait_impls_in_crate_shim",
+ "TraitImpls::for_crate_",
+ "lang_items",
+ "crate_lang_items",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
]
"#]],
);
@@ -410,9 +432,9 @@ fn bar() -> f32 {
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let _crate_def_map = module.def_map(&db);
- db.trait_impls_in_crate(module.krate());
+ TraitImpls::for_crate(&db, module.krate(&db));
},
- &[("trait_impls_in_crate_shim", 1)],
+ &[("TraitImpls::for_crate_", 1)],
expect_test::expect![[r#"
[
"parse_shim",
@@ -420,7 +442,10 @@ fn bar() -> f32 {
"file_item_tree_query",
"real_span_map_shim",
"crate_local_def_map",
- "trait_impls_in_crate_shim",
+ "TraitImpls::for_crate_",
+ "crate_lang_items",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
]
"#]],
);
@@ -449,18 +474,22 @@ $0",
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let _crate_def_map = module.def_map(&db);
- db.trait_impls_in_crate(module.krate());
+ TraitImpls::for_crate(&db, module.krate(&db));
},
- &[("trait_impls_in_crate_shim", 1)],
+ &[("TraitImpls::for_crate_", 1)],
expect_test::expect![[r#"
[
- "source_root_crates_shim",
"crate_local_def_map",
"file_item_tree_query",
"ast_id_map_shim",
"parse_shim",
"real_span_map_shim",
- "trait_impls_in_crate_shim",
+ "TraitImpls::for_crate_",
+ "lang_items",
+ "crate_lang_items",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
]
"#]],
);
@@ -492,9 +521,9 @@ impl SomeStruct {
|| {
let module = db.module_for_file(pos.file_id.file_id(&db));
let _crate_def_map = module.def_map(&db);
- db.trait_impls_in_crate(module.krate());
+ TraitImpls::for_crate(&db, module.krate(&db));
},
- &[("trait_impls_in_crate_shim", 1)],
+ &[("TraitImpls::for_crate_", 1)],
expect_test::expect![[r#"
[
"parse_shim",
@@ -502,15 +531,20 @@ impl SomeStruct {
"file_item_tree_query",
"real_span_map_shim",
"crate_local_def_map",
- "trait_impls_in_crate_shim",
- "attrs_shim",
- "impl_trait_with_diagnostics_shim",
+ "TraitImpls::for_crate_",
+ "crate_lang_items",
+ "AttrFlags::query_",
+ "ImplItems::of_",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
+ "impl_trait_with_diagnostics_query",
"impl_signature_shim",
"impl_signature_with_source_map_shim",
- "impl_self_ty_with_diagnostics_shim",
+ "impl_self_ty_with_diagnostics_query",
"struct_signature_shim",
"struct_signature_with_source_map_shim",
- "attrs_shim",
]
"#]],
);
@@ -542,7 +576,7 @@ fn main() {
let module = db.module_for_file(file_id.file_id(&db));
let crate_def_map = module.def_map(&db);
let mut defs: Vec<DefWithBodyId> = vec![];
- visit_module(&db, crate_def_map, module.local_id, &mut |it| {
+ visit_module(&db, crate_def_map, module, &mut |it| {
let def = match it {
ModuleDefId::FunctionId(it) => it.into(),
ModuleDefId::EnumVariantId(it) => it.into(),
@@ -554,13 +588,12 @@ fn main() {
});
for def in defs {
- let _inference_result = db.infer(def);
+ let _inference_result = InferenceResult::for_body(&db, def);
}
},
&[("trait_solve_shim", 0)],
expect_test::expect![[r#"
[
- "source_root_crates_shim",
"crate_local_def_map",
"file_item_tree_query",
"ast_id_map_shim",
@@ -569,49 +602,47 @@ fn main() {
"TraitItems::query_with_diagnostics_",
"body_shim",
"body_with_source_map_shim",
- "attrs_shim",
+ "AttrFlags::query_",
"ImplItems::of_",
- "infer_shim",
+ "InferenceResult::for_body_",
"trait_signature_shim",
"trait_signature_with_source_map_shim",
- "attrs_shim",
+ "AttrFlags::query_",
"function_signature_shim",
"function_signature_with_source_map_shim",
- "attrs_shim",
+ "AttrFlags::query_",
"body_shim",
"body_with_source_map_shim",
- "trait_environment_shim",
- "lang_item",
+ "trait_environment_query",
+ "lang_items",
"crate_lang_items",
- "attrs_shim",
- "attrs_shim",
- "generic_predicates_shim",
- "return_type_impl_traits_shim",
- "infer_shim",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
+ "GenericPredicates::query_with_diagnostics_",
+ "GenericPredicates::query_with_diagnostics_",
+ "ImplTraits::return_type_impl_traits_",
+ "InferenceResult::for_body_",
"function_signature_shim",
"function_signature_with_source_map_shim",
- "trait_environment_shim",
- "return_type_impl_traits_shim",
+ "trait_environment_query",
+ "GenericPredicates::query_with_diagnostics_",
+ "ImplTraits::return_type_impl_traits_",
"expr_scopes_shim",
"struct_signature_shim",
"struct_signature_with_source_map_shim",
- "generic_predicates_shim",
- "value_ty_shim",
+ "GenericPredicates::query_with_diagnostics_",
+ "value_ty_query",
"VariantFields::firewall_",
"VariantFields::query_",
- "lang_item",
- "lang_item",
- "inherent_impls_in_crate_shim",
+ "InherentImpls::for_crate_",
"impl_signature_shim",
"impl_signature_with_source_map_shim",
- "callable_item_signature_shim",
- "trait_impls_in_deps_shim",
- "trait_impls_in_crate_shim",
- "impl_trait_with_diagnostics_shim",
- "impl_self_ty_with_diagnostics_shim",
- "generic_predicates_shim",
- "value_ty_shim",
- "generic_predicates_shim",
+ "callable_item_signature_query",
+ "TraitImpls::for_crate_and_deps_",
+ "TraitImpls::for_crate_",
+ "impl_trait_with_diagnostics_query",
+ "impl_self_ty_with_diagnostics_query",
+ "GenericPredicates::query_with_diagnostics_",
]
"#]],
);
@@ -642,7 +673,7 @@ fn main() {
let crate_def_map = module.def_map(&db);
let mut defs: Vec<DefWithBodyId> = vec![];
- visit_module(&db, crate_def_map, module.local_id, &mut |it| {
+ visit_module(&db, crate_def_map, module, &mut |it| {
let def = match it {
ModuleDefId::FunctionId(it) => it.into(),
ModuleDefId::EnumVariantId(it) => it.into(),
@@ -654,7 +685,7 @@ fn main() {
});
for def in defs {
- let _inference_result = db.infer(def);
+ let _inference_result = InferenceResult::for_body(&db, def);
}
},
&[("trait_solve_shim", 0)],
@@ -667,40 +698,40 @@ fn main() {
"crate_local_def_map",
"TraitItems::query_with_diagnostics_",
"body_with_source_map_shim",
- "attrs_shim",
+ "AttrFlags::query_",
"body_shim",
"ImplItems::of_",
- "infer_shim",
- "attrs_shim",
+ "InferenceResult::for_body_",
+ "AttrFlags::query_",
"trait_signature_with_source_map_shim",
- "attrs_shim",
+ "AttrFlags::query_",
"function_signature_with_source_map_shim",
"function_signature_shim",
"body_with_source_map_shim",
"body_shim",
- "trait_environment_shim",
"crate_lang_items",
- "attrs_shim",
- "attrs_shim",
- "attrs_shim",
- "generic_predicates_shim",
- "return_type_impl_traits_shim",
- "infer_shim",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
+ "AttrFlags::query_",
+ "GenericPredicates::query_with_diagnostics_",
+ "GenericPredicates::query_with_diagnostics_",
+ "ImplTraits::return_type_impl_traits_",
+ "InferenceResult::for_body_",
"function_signature_with_source_map_shim",
- "return_type_impl_traits_shim",
+ "GenericPredicates::query_with_diagnostics_",
+ "ImplTraits::return_type_impl_traits_",
"expr_scopes_shim",
"struct_signature_with_source_map_shim",
- "generic_predicates_shim",
+ "GenericPredicates::query_with_diagnostics_",
"VariantFields::query_",
- "inherent_impls_in_crate_shim",
+ "InherentImpls::for_crate_",
"impl_signature_with_source_map_shim",
"impl_signature_shim",
- "callable_item_signature_shim",
- "trait_impls_in_crate_shim",
- "impl_trait_with_diagnostics_shim",
- "impl_self_ty_with_diagnostics_shim",
- "generic_predicates_shim",
- "generic_predicates_shim",
+ "callable_item_signature_query",
+ "TraitImpls::for_crate_",
+ "impl_trait_with_diagnostics_query",
+ "impl_self_ty_with_diagnostics_query",
+ "GenericPredicates::query_with_diagnostics_",
]
"#]],
);