mod incremental;
mod macros;
mod mod_resolution;
+mod diagnostics;
mod primitives;
use std::sync::Arc;
use crate::{db::DefDatabase, nameres::*, test_db::TestDB};
-fn compute_crate_def_map(fixture: &str) -> Arc<CrateDefMap> {
- let db = TestDB::with_files(fixture);
+fn compute_crate_def_map(ra_fixture: &str) -> Arc<DefMap> {
+ let db = TestDB::with_files(ra_fixture);
let krate = db.crate_graph().iter().next().unwrap();
db.crate_def_map(krate)
}
fn check(ra_fixture: &str, expect: Expect) {
- let db = TestDB::with_files(ra_fixture);
- let krate = db.crate_graph().iter().next().unwrap();
- let actual = db.crate_def_map(krate).dump();
+ let def_map = compute_crate_def_map(ra_fixture);
+ let actual = def_map.dump();
expect.assert_eq(&actual);
}
enum E { V }
extern {
+ type Ext;
static EXT: u8;
fn ext();
}
Baz: t v
E: t
EXT: v
+ Ext: t
U: t
ext: v
"#]],
"#]],
);
}
+
+#[test]
+fn cfg_the_entire_crate() {
+ check(
+ r#"
+//- /main.rs
+#![cfg(never)]
+
+pub struct S;
+pub enum E {}
+pub fn f() {}
+ "#,
+ expect![[r#"
+ crate
+ "#]],
+ );
+}