aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2019-01-20 17:08:25 +0000
committerFlorian Diebold <[email protected]>2019-01-20 17:14:19 +0000
commit3c4a4c6ae9f62c960ba118b6e1941ba006d221d7 (patch)
treec8a345fb3117a17508e7f31a9f286f62903e7044 /crates/ra_hir/src/ty.rs
parent1c296d54e3dcc36c1a778873f26035000a352ba2 (diff)
Fix panic on inferring field access on an enum
Diffstat (limited to 'crates/ra_hir/src/ty.rs')
-rw-r--r--crates/ra_hir/src/ty.rs8
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);