diff options
Diffstat (limited to 'crates/ra_hir/src/ty.rs')
-rw-r--r-- | crates/ra_hir/src/ty.rs | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index b880fb3d8..8d6493887 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs | |||
@@ -872,22 +872,19 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { | |||
872 | } | 872 | } |
873 | } | 873 | } |
874 | 874 | ||
875 | // TODO: add fields method for tuple like structs and variants | ||
876 | // TODO: and add tests! | ||
877 | |||
878 | fn resolve_fields(&self, path: Option<&Path>) -> Option<(Ty, Vec<StructField>)> { | 875 | fn resolve_fields(&self, path: Option<&Path>) -> Option<(Ty, Vec<StructField>)> { |
879 | let def_id = self.module.resolve_path(self.db, path?).take_types()?; | 876 | let def_id = self.module.resolve_path(self.db, path?).take_types()?; |
880 | let def = def_id.resolve(self.db); | 877 | let def = def_id.resolve(self.db); |
881 | 878 | ||
882 | match def { | 879 | match def { |
883 | Def::Struct(s) => { | 880 | Def::Struct(s) => { |
884 | let fields: Vec<_> = s.fields(self.db); | 881 | let fields = s.fields(self.db); |
885 | Some((type_for_struct(self.db, s), fields)) | 882 | Some((type_for_struct(self.db, s), fields)) |
886 | } | 883 | } |
887 | // Def::EnumVariant(ev) => { | 884 | Def::EnumVariant(ev) => { |
888 | // let fields: Vec<_> = ev.variant_data(self.db).fields().to_owned(); | 885 | let fields = ev.fields(self.db); |
889 | // Some((type_for_enum_variant(self.db, ev), fields)) | 886 | Some((type_for_enum_variant(self.db, ev), fields)) |
890 | // } | 887 | } |
891 | _ => None, | 888 | _ => None, |
892 | } | 889 | } |
893 | } | 890 | } |