From 3c4a4c6ae9f62c960ba118b6e1941ba006d221d7 Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sun, 20 Jan 2019 18:08:25 +0100 Subject: Fix panic on inferring field access on an enum --- crates/ra_hir/src/ty.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'crates/ra_hir/src/ty.rs') 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) Def::Struct(s) => (s.variant_data(db), s.generic_params(db)), Def::EnumVariant(ev) => (ev.variant_data(db), ev.parent_enum(db).generic_params(db)), // TODO: unions + Def::Enum(_) => { + // this can happen in (invalid) code, but enums don't have fields themselves + return None; + } _ => panic!( - "trying to get type for field in non-struct/variant {:?}", - def_id + "trying to get type for field {:?} in non-struct/variant {:?}", + field, def_id ), }; let module = def_id.module(db); -- cgit v1.2.3