Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/data/adt.rs')
| -rw-r--r-- | crates/hir-def/src/data/adt.rs | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/crates/hir-def/src/data/adt.rs b/crates/hir-def/src/data/adt.rs index 6e302aea65..5d44371521 100644 --- a/crates/hir-def/src/data/adt.rs +++ b/crates/hir-def/src/data/adt.rs @@ -334,7 +334,8 @@ impl EnumVariantData { e: EnumVariantId, ) -> (Arc<EnumVariantData>, DefDiagnostics) { let loc = e.lookup(db); - let krate = loc.container.krate; + let container = loc.parent.lookup(db).container; + let krate = container.krate; let item_tree = loc.id.item_tree(db); let cfg_options = db.crate_graph()[krate].cfg_options.clone(); let variant = &item_tree[loc.id.value]; @@ -343,7 +344,7 @@ impl EnumVariantData { db, krate, loc.id.file_id(), - loc.container.local_id, + container.local_id, &item_tree, &cfg_options, &variant.fields, @@ -395,7 +396,7 @@ impl HasChildSource<LocalFieldId> for VariantId { ( lookup.source(db).map(|it| it.kind()), &item_tree[lookup.id.value].fields, - lookup.container, + lookup.parent.lookup(db).container, ) } VariantId::StructId(it) => { @@ -411,11 +412,7 @@ impl HasChildSource<LocalFieldId> for VariantId { let lookup = it.lookup(db); item_tree = lookup.id.item_tree(db); ( - lookup.source(db).map(|it| { - it.record_field_list() - .map(ast::StructKind::Record) - .unwrap_or(ast::StructKind::Unit) - }), + lookup.source(db).map(|it| it.kind()), &item_tree[lookup.id.value].fields, lookup.container, ) |