Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/body/tests.rs')
-rw-r--r--crates/hir-def/src/body/tests.rs26
1 files changed, 24 insertions, 2 deletions
diff --git a/crates/hir-def/src/body/tests.rs b/crates/hir-def/src/body/tests.rs
index 3b29d98d19..8f01091584 100644
--- a/crates/hir-def/src/body/tests.rs
+++ b/crates/hir-def/src/body/tests.rs
@@ -1,6 +1,5 @@
mod block;
-use base_db::SourceDatabase;
use expect_test::{expect, Expect};
use test_fixture::WithFixture;
@@ -11,7 +10,7 @@ use super::*;
fn lower(ra_fixture: &str) -> (TestDB, Arc<Body>, DefWithBodyId) {
let db = TestDB::with_files(ra_fixture);
- let krate = db.crate_graph().iter().next().unwrap();
+ let krate = db.fetch_test_crate();
let def_map = db.crate_def_map(krate);
let mut fn_def = None;
'outer: for (_, module) in def_map.modules() {
@@ -404,3 +403,26 @@ fn foo() {
}"#]]
.assert_eq(&body.pretty_print(&db, def, Edition::CURRENT))
}
+
+#[test]
+fn shadowing_record_variant() {
+ let (_, body, _) = lower(
+ r#"
+enum A {
+ B { field: i32 },
+}
+fn f() {
+ use A::*;
+ match () {
+ B => {}
+ };
+}
+ "#,
+ );
+ assert_eq!(body.bindings.len(), 1, "should have a binding for `B`");
+ assert_eq!(
+ body.bindings[BindingId::from_raw(RawIdx::from_u32(0))].name.as_str(),
+ "B",
+ "should have a binding for `B`",
+ );
+}