about summary refs log tree commit diff
diff options
context:
space:
mode:
authoradamrk <ark.email@gmail.com>2020-02-15 22:12:48 +0100
committeradamrk <ark.email@gmail.com>2020-02-16 16:10:32 +0100
commit68d3743faf51926f0a63207686f860bdffafe0d7 (patch)
tree86221c859db5f543f9e5c91b3176f2103a30d86a
parent04aff742b15ebab39f493ba480d20c61e1f3bdd5 (diff)
downloadrust-68d3743faf51926f0a63207686f860bdffafe0d7.tar.gz
rust-68d3743faf51926f0a63207686f860bdffafe0d7.zip
replace uses of VariantData::is_unit with VariantData::kind
-rw-r--r--crates/ra_hir_def/src/adt.rs6
-rw-r--r--crates/ra_hir_ty/src/lower.rs11
2 files changed, 7 insertions, 10 deletions
diff --git a/crates/ra_hir_def/src/adt.rs b/crates/ra_hir_def/src/adt.rs
index 4582c7314a5..985f409e873 100644
--- a/crates/ra_hir_def/src/adt.rs
+++ b/crates/ra_hir_def/src/adt.rs
@@ -147,12 +147,6 @@ impl VariantData {
             VariantData::Unit => StructKind::Unit,
         }
     }
-    pub fn is_unit(&self) -> bool {
-        match self {
-            VariantData::Unit => true,
-            _ => false,
-        }
-    }
 }
 
 impl HasChildSource for VariantId {
diff --git a/crates/ra_hir_ty/src/lower.rs b/crates/ra_hir_ty/src/lower.rs
index 6a2aded021c..a5b2734a051 100644
--- a/crates/ra_hir_ty/src/lower.rs
+++ b/crates/ra_hir_ty/src/lower.rs
@@ -9,6 +9,7 @@ use std::iter;
 use std::sync::Arc;
 
 use hir_def::{
+    adt::StructKind,
     builtin_type::BuiltinType,
     generics::{TypeParamProvenance, WherePredicate, WherePredicateTarget},
     path::{GenericArg, Path, PathSegment, PathSegments},
@@ -805,8 +806,9 @@ fn fn_sig_for_struct_constructor(db: &impl HirDatabase, def: StructId) -> PolyFn
 /// Build the type of a tuple struct constructor.
 fn type_for_struct_constructor(db: &impl HirDatabase, def: StructId) -> Binders<Ty> {
     let struct_data = db.struct_data(def.into());
-    if struct_data.variant_data.is_unit() {
-        return type_for_adt(db, def.into()); // Unit struct
+    match struct_data.variant_data.kind() {
+        StructKind::Unit => return type_for_adt(db, def.into()),
+        StructKind::Tuple | StructKind::Record => (),
     }
     let generics = generics(db, def.into());
     let substs = Substs::bound_vars(&generics);
@@ -830,8 +832,9 @@ fn fn_sig_for_enum_variant_constructor(db: &impl HirDatabase, def: EnumVariantId
 fn type_for_enum_variant_constructor(db: &impl HirDatabase, def: EnumVariantId) -> Binders<Ty> {
     let enum_data = db.enum_data(def.parent);
     let var_data = &enum_data.variants[def.local_id].variant_data;
-    if var_data.is_unit() {
-        return type_for_adt(db, def.parent.into()); // Unit variant
+    match var_data.kind() {
+        StructKind::Unit => return type_for_adt(db, def.parent.into()),
+        StructKind::Record | StructKind::Tuple => (),
     }
     let generics = generics(db, def.parent.into());
     let substs = Substs::bound_vars(&generics);