|
1 | 1 | use crate::ast::{ |
2 | 2 | self, Param, BinOpKind, BindingMode, BlockCheckMode, Expr, ExprKind, Ident, Item, ItemKind, |
3 | | - Mutability, Pat, PatKind, PathSegment, QSelf, Ty, TyKind, VariantData, |
| 3 | + Mutability, Pat, PatKind, PathSegment, QSelf, Ty, TyKind, |
4 | 4 | }; |
5 | | -use crate::feature_gate::feature_err; |
6 | | -use crate::parse::{SeqSep, PResult, Parser, ParseSess}; |
| 5 | +use crate::parse::{SeqSep, PResult, Parser}; |
7 | 6 | use crate::parse::parser::{BlockMode, PathStyle, SemiColonMode, TokenType, TokenExpectType}; |
8 | 7 | use crate::parse::token::{self, TokenKind}; |
9 | 8 | use crate::print::pprust; |
@@ -715,55 +714,7 @@ impl<'a> Parser<'a> { |
715 | 714 | } |
716 | 715 | } |
717 | 716 |
|
718 | | - crate fn maybe_report_invalid_custom_discriminants( |
719 | | - sess: &ParseSess, |
720 | | - variants: &[ast::Variant], |
721 | | - ) { |
722 | | - let has_fields = variants.iter().any(|variant| match variant.data { |
723 | | - VariantData::Tuple(..) | VariantData::Struct(..) => true, |
724 | | - VariantData::Unit(..) => false, |
725 | | - }); |
726 | | - |
727 | | - let discriminant_spans = variants.iter().filter(|variant| match variant.data { |
728 | | - VariantData::Tuple(..) | VariantData::Struct(..) => false, |
729 | | - VariantData::Unit(..) => true, |
730 | | - }) |
731 | | - .filter_map(|variant| variant.disr_expr.as_ref().map(|c| c.value.span)) |
732 | | - .collect::<Vec<_>>(); |
733 | | - |
734 | | - if !discriminant_spans.is_empty() && has_fields { |
735 | | - let mut err = feature_err( |
736 | | - sess, |
737 | | - sym::arbitrary_enum_discriminant, |
738 | | - discriminant_spans.clone(), |
739 | | - crate::feature_gate::GateIssue::Language, |
740 | | - "custom discriminant values are not allowed in enums with tuple or struct variants", |
741 | | - ); |
742 | | - for sp in discriminant_spans { |
743 | | - err.span_label(sp, "disallowed custom discriminant"); |
744 | | - } |
745 | | - for variant in variants.iter() { |
746 | | - match &variant.data { |
747 | | - VariantData::Struct(..) => { |
748 | | - err.span_label( |
749 | | - variant.span, |
750 | | - "struct variant defined here", |
751 | | - ); |
752 | | - } |
753 | | - VariantData::Tuple(..) => { |
754 | | - err.span_label( |
755 | | - variant.span, |
756 | | - "tuple variant defined here", |
757 | | - ); |
758 | | - } |
759 | | - VariantData::Unit(..) => {} |
760 | | - } |
761 | | - } |
762 | | - err.emit(); |
763 | | - } |
764 | | - } |
765 | | - |
766 | | - crate fn maybe_recover_from_bad_type_plus( |
| 717 | + pub(super) fn maybe_recover_from_bad_type_plus( |
767 | 718 | &mut self, |
768 | 719 | allow_plus: bool, |
769 | 720 | ty: &Ty, |
|
0 commit comments