3 use base_db::{fixture::WithFixture, SourceDatabase};
4 use expect_test::Expect;
6 use crate::ModuleDefId;
10 fn lower(ra_fixture: &str) -> Arc<Body> {
11 let db = crate::test_db::TestDB::with_files(ra_fixture);
13 let krate = db.crate_graph().iter().next().unwrap();
14 let def_map = db.crate_def_map(krate);
15 let mut fn_def = None;
16 'outer: for (_, module) in def_map.modules() {
17 for decl in module.scope.declarations() {
19 ModuleDefId::FunctionId(it) => {
28 db.body(fn_def.unwrap().into())
31 fn block_def_map_at(ra_fixture: &str) -> String {
32 let (db, position) = crate::test_db::TestDB::with_position(ra_fixture);
34 let module = db.module_at_position(position);
35 module.def_map(&db).dump(&db)
38 fn check_block_scopes_at(ra_fixture: &str, expect: Expect) {
39 let (db, position) = crate::test_db::TestDB::with_position(ra_fixture);
41 let module = db.module_at_position(position);
42 let actual = module.def_map(&db).dump_block_scopes(&db);
43 expect.assert_eq(&actual);
46 fn check_at(ra_fixture: &str, expect: Expect) {
47 let actual = block_def_map_at(ra_fixture);
48 expect.assert_eq(&actual);
52 fn your_stack_belongs_to_me() {
53 cov_mark::check!(your_stack_belongs_to_me);
56 macro_rules! n_nuple {
59 (n_nuple!($($rest)*)None,)
62 fn main() { n_nuple!(1,2,3); }
69 // Regression test for a path resolution bug introduced with inner item handling.
74 ($elem:expr; $n:expr) => { () };
75 ($($x:expr),+ $(,)?) => { () };
79 let _ = vec![FileSet::default(); self.len()];