Skip to content

Commit bde303a

Browse files
committed
Unify Field and ClosureField, and use local indexes for both (no variant ID / tuple ID needed)
bring back env for projection_ty cleanups
1 parent ccaa9b5 commit bde303a

8 files changed

Lines changed: 391 additions & 264 deletions

File tree

crates/hir-def/src/lib.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,6 +1017,14 @@ pub enum VariantId {
10171017
impl_from!(EnumVariantId, StructId, UnionId for VariantId);
10181018

10191019
impl VariantId {
1020+
pub fn from_non_enum(adt_id: AdtId) -> Option<Self> {
1021+
Some(match adt_id {
1022+
AdtId::StructId(struct_id) => struct_id.into(),
1023+
AdtId::UnionId(union_id) => union_id.into(),
1024+
AdtId::EnumId(_) => return None,
1025+
})
1026+
}
1027+
10201028
pub fn fields(self, db: &dyn DefDatabase) -> &VariantFields {
10211029
VariantFields::of(db, self)
10221030
}

0 commit comments

Comments
 (0)