diff options
Diffstat (limited to 'crates/ra_hir/src/ty.rs')
-rw-r--r-- | crates/ra_hir/src/ty.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index 9b7182485..c602450e1 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs | |||
@@ -688,9 +688,13 @@ pub(super) fn type_for_field(db: &impl HirDatabase, def_id: DefId, field: Name) | |||
688 | Def::Struct(s) => (s.variant_data(db), s.generic_params(db)), | 688 | Def::Struct(s) => (s.variant_data(db), s.generic_params(db)), |
689 | Def::EnumVariant(ev) => (ev.variant_data(db), ev.parent_enum(db).generic_params(db)), | 689 | Def::EnumVariant(ev) => (ev.variant_data(db), ev.parent_enum(db).generic_params(db)), |
690 | // TODO: unions | 690 | // TODO: unions |
691 | Def::Enum(_) => { | ||
692 | // this can happen in (invalid) code, but enums don't have fields themselves | ||
693 | return None; | ||
694 | } | ||
691 | _ => panic!( | 695 | _ => panic!( |
692 | "trying to get type for field in non-struct/variant {:?}", | 696 | "trying to get type for field {:?} in non-struct/variant {:?}", |
693 | def_id | 697 | field, def_id |
694 | ), | 698 | ), |
695 | }; | 699 | }; |
696 | let module = def_id.module(db); | 700 | let module = def_id.module(db); |