replace uses of VariantData::is_unit with VariantData::kind

This commit is contained in:
adamrk 2020-02-15 22:12:48 +01:00
parent 04aff742b1
commit 68d3743faf
2 changed files with 7 additions and 10 deletions

View file

@ -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 {

View file

@ -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);