aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty.rs
diff options
context:
space:
mode:
authorMarcus Klaas de Vries <[email protected]>2019-01-18 14:38:11 +0000
committerAleksey Kladov <[email protected]>2019-01-19 12:37:26 +0000
commitbcbfa2cc1146dfa23acb3e61f7ec053733a8fac1 (patch)
tree7586d897724f0bf75b466945c4f9f34cd59197d7 /crates/ra_hir/src/ty.rs
parent4277f420aa947f0c0739506ec229da94e76ee67b (diff)
Finish move of StructField for pattern type inference
Diffstat (limited to 'crates/ra_hir/src/ty.rs')
-rw-r--r--crates/ra_hir/src/ty.rs13
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 }