提交 49ea3d48 编写于 作者: V Vadim Petrochenkov

Remove unnecessary accessor function VariantDefData::kind

上级 2cdd9f1c
...@@ -1063,7 +1063,7 @@ fn fmt_tuple(fmt: &mut Formatter, lvs: &[Operand]) -> fmt::Result { ...@@ -1063,7 +1063,7 @@ fn fmt_tuple(fmt: &mut Formatter, lvs: &[Operand]) -> fmt::Result {
Some(tcx.lookup_item_type(variant_def.did).generics) Some(tcx.lookup_item_type(variant_def.did).generics)
})?; })?;
match variant_def.kind() { match variant_def.kind {
ty::VariantKind::Unit => Ok(()), ty::VariantKind::Unit => Ok(()),
ty::VariantKind::Tuple => fmt_tuple(fmt, lvs), ty::VariantKind::Tuple => fmt_tuple(fmt, lvs),
ty::VariantKind::Struct => { ty::VariantKind::Struct => {
......
...@@ -1925,14 +1925,6 @@ fn fields_iter(&self) -> slice::Iter<FieldDefData<'tcx, 'container>> { ...@@ -1925,14 +1925,6 @@ fn fields_iter(&self) -> slice::Iter<FieldDefData<'tcx, 'container>> {
self.fields.iter() self.fields.iter()
} }
pub fn kind(&self) -> VariantKind {
self.kind
}
pub fn is_tuple_struct(&self) -> bool {
self.kind() == VariantKind::Tuple
}
#[inline] #[inline]
pub fn find_field_named(&self, pub fn find_field_named(&self,
name: ast::Name) name: ast::Name)
......
...@@ -246,9 +246,9 @@ fn check_for_bindings_named_the_same_as_variants(cx: &MatchCheckCtxt, pat: &Pat) ...@@ -246,9 +246,9 @@ fn check_for_bindings_named_the_same_as_variants(cx: &MatchCheckCtxt, pat: &Pat)
let pat_ty = cx.tcx.pat_ty(p); let pat_ty = cx.tcx.pat_ty(p);
if let ty::TyEnum(edef, _) = pat_ty.sty { if let ty::TyEnum(edef, _) = pat_ty.sty {
if let Def::Local(..) = cx.tcx.expect_def(p.id) { if let Def::Local(..) = cx.tcx.expect_def(p.id) {
if edef.variants.iter().any(|variant| if edef.variants.iter().any(|variant| {
variant.name == name.node && variant.kind() == VariantKind::Unit variant.name == name.node && variant.kind == VariantKind::Unit
) { }) {
let ty_path = cx.tcx.item_path_str(edef.did); let ty_path = cx.tcx.item_path_str(edef.did);
let mut err = struct_span_warn!(cx.tcx.sess, p.span, E0170, let mut err = struct_span_warn!(cx.tcx.sess, p.span, E0170,
"pattern binding `{}` is named the same as one \ "pattern binding `{}` is named the same as one \
...@@ -563,7 +563,7 @@ fn construct_witness<'a,'tcx>(cx: &MatchCheckCtxt<'a,'tcx>, ctor: &Constructor, ...@@ -563,7 +563,7 @@ fn construct_witness<'a,'tcx>(cx: &MatchCheckCtxt<'a,'tcx>, ctor: &Constructor,
ty::TyEnum(adt, _) | ty::TyStruct(adt, _) => { ty::TyEnum(adt, _) | ty::TyStruct(adt, _) => {
let v = ctor.variant_for_adt(adt); let v = ctor.variant_for_adt(adt);
match v.kind() { match v.kind {
VariantKind::Struct => { VariantKind::Struct => {
let field_pats: hir::HirVec<_> = v.fields.iter() let field_pats: hir::HirVec<_> = v.fields.iter()
.zip(pats) .zip(pats)
......
...@@ -498,7 +498,7 @@ fn get_struct_variant<'tcx>(intr: &IdentInterner, ...@@ -498,7 +498,7 @@ fn get_struct_variant<'tcx>(intr: &IdentInterner,
// this needs to be done *after* the variant is interned, // this needs to be done *after* the variant is interned,
// to support recursive structures // to support recursive structures
for variant in &adt.variants { for variant in &adt.variants {
if variant.kind() == ty::VariantKind::Tuple && if variant.kind == ty::VariantKind::Tuple &&
adt.adt_kind() == ty::AdtKind::Enum { adt.adt_kind() == ty::AdtKind::Enum {
// tuple-like enum variant fields aren't real items - get the types // tuple-like enum variant fields aren't real items - get the types
// from the ctor. // from the ctor.
......
...@@ -217,7 +217,7 @@ fn encode_parent_item(rbml_w: &mut Encoder, id: DefId) { ...@@ -217,7 +217,7 @@ fn encode_parent_item(rbml_w: &mut Encoder, id: DefId) {
fn encode_struct_fields(rbml_w: &mut Encoder, fn encode_struct_fields(rbml_w: &mut Encoder,
variant: ty::VariantDef) { variant: ty::VariantDef) {
for f in &variant.fields { for f in &variant.fields {
if variant.is_tuple_struct() { if variant.kind == ty::VariantKind::Tuple {
rbml_w.start_tag(tag_item_unnamed_field); rbml_w.start_tag(tag_item_unnamed_field);
} else { } else {
rbml_w.start_tag(tag_item_field); rbml_w.start_tag(tag_item_field);
...@@ -250,7 +250,7 @@ fn encode_enum_variant_info<'a, 'tcx>(ecx: &EncodeContext<'a, 'tcx>, ...@@ -250,7 +250,7 @@ fn encode_enum_variant_info<'a, 'tcx>(ecx: &EncodeContext<'a, 'tcx>,
let _task = index.record(vid, rbml_w); let _task = index.record(vid, rbml_w);
rbml_w.start_tag(tag_items_data_item); rbml_w.start_tag(tag_items_data_item);
encode_def_id_and_key(ecx, rbml_w, vid); encode_def_id_and_key(ecx, rbml_w, vid);
encode_family(rbml_w, match variant.kind() { encode_family(rbml_w, match variant.kind {
ty::VariantKind::Struct => 'V', ty::VariantKind::Struct => 'V',
ty::VariantKind::Tuple => 'v', ty::VariantKind::Tuple => 'v',
ty::VariantKind::Unit => 'w', ty::VariantKind::Unit => 'w',
......
...@@ -901,7 +901,7 @@ fn const_expr_unadjusted<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, ...@@ -901,7 +901,7 @@ fn const_expr_unadjusted<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>,
} }
Def::Variant(enum_did, variant_did) => { Def::Variant(enum_did, variant_did) => {
let vinfo = cx.tcx().lookup_adt_def(enum_did).variant_with_id(variant_did); let vinfo = cx.tcx().lookup_adt_def(enum_did).variant_with_id(variant_did);
match vinfo.kind() { match vinfo.kind {
ty::VariantKind::Unit => { ty::VariantKind::Unit => {
let repr = adt::represent_type(cx, ety); let repr = adt::represent_type(cx, ety);
adt::trans_const(cx, &repr, Disr::from(vinfo.disr_val), &[]) adt::trans_const(cx, &repr, Disr::from(vinfo.disr_val), &[])
......
...@@ -1109,7 +1109,7 @@ struct StructMemberDescriptionFactory<'tcx> { ...@@ -1109,7 +1109,7 @@ struct StructMemberDescriptionFactory<'tcx> {
impl<'tcx> StructMemberDescriptionFactory<'tcx> { impl<'tcx> StructMemberDescriptionFactory<'tcx> {
fn create_member_descriptions<'a>(&self, cx: &CrateContext<'a, 'tcx>) fn create_member_descriptions<'a>(&self, cx: &CrateContext<'a, 'tcx>)
-> Vec<MemberDescription> { -> Vec<MemberDescription> {
if let ty::VariantKind::Unit = self.variant.kind() { if self.variant.kind == ty::VariantKind::Unit {
return Vec::new(); return Vec::new();
} }
...@@ -1126,7 +1126,7 @@ fn create_member_descriptions<'a>(&self, cx: &CrateContext<'a, 'tcx>) ...@@ -1126,7 +1126,7 @@ fn create_member_descriptions<'a>(&self, cx: &CrateContext<'a, 'tcx>)
}; };
self.variant.fields.iter().enumerate().map(|(i, f)| { self.variant.fields.iter().enumerate().map(|(i, f)| {
let name = if let ty::VariantKind::Tuple = self.variant.kind() { let name = if self.variant.kind == ty::VariantKind::Tuple {
format!("__{}", i) format!("__{}", i)
} else { } else {
f.name.to_string() f.name.to_string()
...@@ -1356,7 +1356,7 @@ fn create_member_descriptions<'a>(&self, cx: &CrateContext<'a, 'tcx>) ...@@ -1356,7 +1356,7 @@ fn create_member_descriptions<'a>(&self, cx: &CrateContext<'a, 'tcx>)
// For the metadata of the wrapper struct, we need to create a // For the metadata of the wrapper struct, we need to create a
// MemberDescription of the struct's single field. // MemberDescription of the struct's single field.
let sole_struct_member_description = MemberDescription { let sole_struct_member_description = MemberDescription {
name: match non_null_variant.kind() { name: match non_null_variant.kind {
ty::VariantKind::Tuple => "__0".to_string(), ty::VariantKind::Tuple => "__0".to_string(),
ty::VariantKind::Struct => { ty::VariantKind::Struct => {
non_null_variant.fields[0].name.to_string() non_null_variant.fields[0].name.to_string()
...@@ -1524,7 +1524,7 @@ fn describe_enum_variant<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, ...@@ -1524,7 +1524,7 @@ fn describe_enum_variant<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>,
containing_scope); containing_scope);
// Get the argument names from the enum variant info // Get the argument names from the enum variant info
let mut arg_names: Vec<_> = match variant.kind() { let mut arg_names: Vec<_> = match variant.kind {
ty::VariantKind::Unit => vec![], ty::VariantKind::Unit => vec![],
ty::VariantKind::Tuple => { ty::VariantKind::Tuple => {
variant.fields variant.fields
......
...@@ -1671,14 +1671,12 @@ pub fn def_struct_variant(&self, ...@@ -1671,14 +1671,12 @@ pub fn def_struct_variant(&self,
_ => return None _ => return None
}; };
let var_kind = variant.kind(); if variant.kind == ty::VariantKind::Struct ||
if var_kind == ty::VariantKind::Struct { variant.kind == ty::VariantKind::Unit {
Some((adt, variant)) Some((adt, variant))
} else if var_kind == ty::VariantKind::Unit { } else {
Some((adt, variant)) None
} else { }
None
}
} }
pub fn write_nil(&self, node_id: ast::NodeId) { pub fn write_nil(&self, node_id: ast::NodeId) {
...@@ -2998,7 +2996,7 @@ fn check_tup_field(&self, ...@@ -2998,7 +2996,7 @@ fn check_tup_field(&self,
while let Some((base_t, autoderefs)) = autoderef.next() { while let Some((base_t, autoderefs)) = autoderef.next() {
let field = match base_t.sty { let field = match base_t.sty {
ty::TyStruct(base_def, substs) => { ty::TyStruct(base_def, substs) => {
tuple_like = base_def.struct_variant().is_tuple_struct(); tuple_like = base_def.struct_variant().kind == ty::VariantKind::Tuple;
if !tuple_like { continue } if !tuple_like { continue }
debug!("tuple struct named {:?}", base_t); debug!("tuple struct named {:?}", base_t);
......
...@@ -949,7 +949,7 @@ fn convert_variant_ctor<'a, 'tcx>(ccx: &CrateCtxt<'a, 'tcx>, ...@@ -949,7 +949,7 @@ fn convert_variant_ctor<'a, 'tcx>(ccx: &CrateCtxt<'a, 'tcx>,
scheme: ty::TypeScheme<'tcx>, scheme: ty::TypeScheme<'tcx>,
predicates: ty::GenericPredicates<'tcx>) { predicates: ty::GenericPredicates<'tcx>) {
let tcx = ccx.tcx; let tcx = ccx.tcx;
let ctor_ty = match variant.kind() { let ctor_ty = match variant.kind {
VariantKind::Unit | VariantKind::Struct => scheme.ty, VariantKind::Unit | VariantKind::Struct => scheme.ty,
VariantKind::Tuple => { VariantKind::Tuple => {
let inputs: Vec<_> = let inputs: Vec<_> =
......
...@@ -1904,7 +1904,7 @@ fn clean(&self, cx: &DocContext) -> Item { ...@@ -1904,7 +1904,7 @@ fn clean(&self, cx: &DocContext) -> Item {
impl<'tcx> Clean<Item> for ty::VariantDefData<'tcx, 'static> { impl<'tcx> Clean<Item> for ty::VariantDefData<'tcx, 'static> {
fn clean(&self, cx: &DocContext) -> Item { fn clean(&self, cx: &DocContext) -> Item {
let kind = match self.kind() { let kind = match self.kind {
ty::VariantKind::Unit => CLikeVariant, ty::VariantKind::Unit => CLikeVariant,
ty::VariantKind::Tuple => { ty::VariantKind::Tuple => {
TupleVariant( TupleVariant(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册