@@ -277,8 +277,7 @@ where
277
277
allowed_through_unstable_modules = true ;
278
278
}
279
279
// attributes with data
280
- else if let Some ( MetaItem { kind : MetaItemKind :: List ( ref metas) , .. } ) = meta {
281
- let meta = meta. as_ref ( ) . unwrap ( ) ;
280
+ else if let Some ( meta @ MetaItem { kind : MetaItemKind :: List ( metas) , .. } ) = & meta {
282
281
let get = |meta : & MetaItem , item : & mut Option < Symbol > | {
283
282
if item. is_some ( ) {
284
283
handle_errors (
@@ -533,25 +532,24 @@ where
533
532
534
533
// Merge the const-unstable info into the stability info
535
534
if promotable {
536
- if let Some ( ( ref mut stab, _) ) = const_stab {
537
- stab. promotable = promotable;
538
- } else {
539
- sess. emit_err ( session_diagnostics:: RustcPromotablePairing { span : item_sp } ) ;
535
+ match & mut const_stab {
536
+ Some ( ( stab, _) ) => stab. promotable = promotable,
537
+ _ => _ = sess. emit_err ( session_diagnostics:: RustcPromotablePairing { span : item_sp } ) ,
540
538
}
541
539
}
542
540
543
541
if allowed_through_unstable_modules {
544
- if let Some ( (
545
- Stability {
546
- level : StabilityLevel :: Stable { ref mut allowed_through_unstable_modules , .. } ,
547
- ..
548
- } ,
549
- _ ,
550
- ) ) = stab
551
- {
552
- * allowed_through_unstable_modules = true ;
553
- } else {
554
- sess . emit_err ( session_diagnostics :: RustcAllowedUnstablePairing { span : item_sp } ) ;
542
+ match & mut stab {
543
+ Some ( (
544
+ Stability {
545
+ level : StabilityLevel :: Stable { allowed_through_unstable_modules , .. } ,
546
+ ..
547
+ } ,
548
+ _ ,
549
+ ) ) => * allowed_through_unstable_modules = true ,
550
+ _ => {
551
+ sess . emit_err ( session_diagnostics :: RustcAllowedUnstablePairing { span : item_sp } ) ;
552
+ }
555
553
}
556
554
}
557
555
@@ -654,8 +652,8 @@ pub fn eval_condition(
654
652
features : Option < & Features > ,
655
653
eval : & mut impl FnMut ( Condition ) -> bool ,
656
654
) -> bool {
657
- match cfg. kind {
658
- ast:: MetaItemKind :: List ( ref mis) if cfg. name_or_empty ( ) == sym:: version => {
655
+ match & cfg. kind {
656
+ ast:: MetaItemKind :: List ( mis) if cfg. name_or_empty ( ) == sym:: version => {
659
657
try_gate_cfg ( sym:: version, cfg. span , sess, features) ;
660
658
let ( min_version, span) = match & mis[ ..] {
661
659
[ NestedMetaItem :: Lit ( MetaItemLit { kind : LitKind :: Str ( sym, ..) , span, .. } ) ] => {
@@ -688,7 +686,7 @@ pub fn eval_condition(
688
686
rustc_version >= min_version
689
687
}
690
688
}
691
- ast:: MetaItemKind :: List ( ref mis) => {
689
+ ast:: MetaItemKind :: List ( mis) => {
692
690
for mi in mis. iter ( ) {
693
691
if !mi. is_meta_item ( ) {
694
692
handle_errors (
@@ -759,7 +757,7 @@ pub fn eval_condition(
759
757
sess. emit_err ( session_diagnostics:: CfgPredicateIdentifier { span : cfg. path . span } ) ;
760
758
true
761
759
}
762
- MetaItemKind :: NameValue ( ref lit) if !lit. kind . is_str ( ) => {
760
+ MetaItemKind :: NameValue ( lit) if !lit. kind . is_str ( ) => {
763
761
handle_errors (
764
762
sess,
765
763
lit. span ,
@@ -1036,52 +1034,58 @@ pub fn parse_repr_attr(sess: &Session, attr: &Attribute) -> Vec<ReprAttr> {
1036
1034
} ) ;
1037
1035
}
1038
1036
} else if let Some ( meta_item) = item. meta_item ( ) {
1039
- if let MetaItemKind :: NameValue ( ref value) = meta_item. kind {
1040
- if meta_item. has_name ( sym:: align) || meta_item. has_name ( sym:: packed) {
1041
- let name = meta_item. name_or_empty ( ) . to_ident_string ( ) ;
1042
- recognised = true ;
1043
- sess. emit_err ( session_diagnostics:: IncorrectReprFormatGeneric {
1044
- span : item. span ( ) ,
1045
- repr_arg : & name,
1046
- cause : IncorrectReprFormatGenericCause :: from_lit_kind (
1047
- item. span ( ) ,
1048
- & value. kind ,
1049
- & name,
1050
- ) ,
1051
- } ) ;
1052
- } else if matches ! (
1053
- meta_item. name_or_empty( ) ,
1054
- sym:: C | sym:: simd | sym:: transparent
1055
- ) || int_type_of_word ( meta_item. name_or_empty ( ) ) . is_some ( )
1056
- {
1057
- recognised = true ;
1058
- sess. emit_err ( session_diagnostics:: InvalidReprHintNoValue {
1059
- span : meta_item. span ,
1060
- name : meta_item. name_or_empty ( ) . to_ident_string ( ) ,
1061
- } ) ;
1037
+ match & meta_item. kind {
1038
+ MetaItemKind :: NameValue ( value) => {
1039
+ if meta_item. has_name ( sym:: align) || meta_item. has_name ( sym:: packed) {
1040
+ let name = meta_item. name_or_empty ( ) . to_ident_string ( ) ;
1041
+ recognised = true ;
1042
+ sess. emit_err ( session_diagnostics:: IncorrectReprFormatGeneric {
1043
+ span : item. span ( ) ,
1044
+ repr_arg : & name,
1045
+ cause : IncorrectReprFormatGenericCause :: from_lit_kind (
1046
+ item. span ( ) ,
1047
+ & value. kind ,
1048
+ & name,
1049
+ ) ,
1050
+ } ) ;
1051
+ } else if matches ! (
1052
+ meta_item. name_or_empty( ) ,
1053
+ sym:: C | sym:: simd | sym:: transparent
1054
+ ) || int_type_of_word ( meta_item. name_or_empty ( ) ) . is_some ( )
1055
+ {
1056
+ recognised = true ;
1057
+ sess. emit_err ( session_diagnostics:: InvalidReprHintNoValue {
1058
+ span : meta_item. span ,
1059
+ name : meta_item. name_or_empty ( ) . to_ident_string ( ) ,
1060
+ } ) ;
1061
+ }
1062
1062
}
1063
- } else if let MetaItemKind :: List ( _) = meta_item. kind {
1064
- if meta_item. has_name ( sym:: align) {
1065
- recognised = true ;
1066
- sess. emit_err ( session_diagnostics:: IncorrectReprFormatAlignOneArg {
1067
- span : meta_item. span ,
1068
- } ) ;
1069
- } else if meta_item. has_name ( sym:: packed) {
1070
- recognised = true ;
1071
- sess. emit_err ( session_diagnostics:: IncorrectReprFormatPackedOneOrZeroArg {
1072
- span : meta_item. span ,
1073
- } ) ;
1074
- } else if matches ! (
1075
- meta_item. name_or_empty( ) ,
1076
- sym:: C | sym:: simd | sym:: transparent
1077
- ) || int_type_of_word ( meta_item. name_or_empty ( ) ) . is_some ( )
1078
- {
1079
- recognised = true ;
1080
- sess. emit_err ( session_diagnostics:: InvalidReprHintNoParen {
1081
- span : meta_item. span ,
1082
- name : meta_item. name_or_empty ( ) . to_ident_string ( ) ,
1083
- } ) ;
1063
+ MetaItemKind :: List ( _) => {
1064
+ if meta_item. has_name ( sym:: align) {
1065
+ recognised = true ;
1066
+ sess. emit_err ( session_diagnostics:: IncorrectReprFormatAlignOneArg {
1067
+ span : meta_item. span ,
1068
+ } ) ;
1069
+ } else if meta_item. has_name ( sym:: packed) {
1070
+ recognised = true ;
1071
+ sess. emit_err (
1072
+ session_diagnostics:: IncorrectReprFormatPackedOneOrZeroArg {
1073
+ span : meta_item. span ,
1074
+ } ,
1075
+ ) ;
1076
+ } else if matches ! (
1077
+ meta_item. name_or_empty( ) ,
1078
+ sym:: C | sym:: simd | sym:: transparent
1079
+ ) || int_type_of_word ( meta_item. name_or_empty ( ) ) . is_some ( )
1080
+ {
1081
+ recognised = true ;
1082
+ sess. emit_err ( session_diagnostics:: InvalidReprHintNoParen {
1083
+ span : meta_item. span ,
1084
+ name : meta_item. name_or_empty ( ) . to_ident_string ( ) ,
1085
+ } ) ;
1086
+ }
1084
1087
}
1088
+ _ => ( ) ,
1085
1089
}
1086
1090
}
1087
1091
if !recognised {
0 commit comments