@@ -1070,55 +1070,58 @@ impl Bitfield {
1070
1070
ctor_name : & ast:: Ident ,
1071
1071
unit_field_int_ty : & P < ast:: Ty > )
1072
1072
-> P < ast:: Item > {
1073
- match ctor_impl. unwrap ( ) . node {
1074
- ast:: ItemKind :: Impl ( _, _, _, _, _, ref items) => {
1075
- assert_eq ! ( items. len( ) , 1 ) ;
1073
+ let items = match ctor_impl. unwrap ( ) . node {
1074
+ ast:: ItemKind :: Impl ( _, _, _, _, _, items) => {
1075
+ items
1076
+ }
1077
+ _ => unreachable ! ( ) ,
1078
+ } ;
1076
1079
1077
- match items. get ( 0 ) . unwrap ( ) . node {
1078
- ast:: ImplItemKind :: Method ( ref sig, ref body) => {
1079
- let params = sig. decl . clone ( ) . unwrap ( ) . inputs ;
1080
- let param_name = bitfield_getter_name ( ctx, parent, self . name ( ) ) ;
1081
-
1082
- let bitfield_ty_item = ctx. resolve_item ( self . ty ( ) ) ;
1083
- let bitfield_ty = bitfield_ty_item. expect_type ( ) ;
1084
- let bitfield_ty_layout = bitfield_ty. layout ( ctx)
1085
- . expect ( "Bitfield without layout? Gah!" ) ;
1086
- let bitfield_int_ty = BlobTyBuilder :: new ( bitfield_ty_layout) . build ( ) ;
1087
- let bitfield_ty = bitfield_ty
1088
- . to_rust_ty_or_opaque ( ctx, bitfield_ty_item) ;
1089
-
1090
- let offset = self . offset_into_unit ( ) ;
1091
- let mask = self . mask ( ) ;
1092
-
1093
- // If we're generating unstable Rust, add the const.
1094
- let fn_prefix = if ctx. options ( ) . unstable_rust {
1095
- quote_tokens ! ( ctx. ext_cx( ) , pub const fn )
1096
- } else {
1097
- quote_tokens ! ( ctx. ext_cx( ) , pub fn )
1098
- } ;
1080
+ assert_eq ! ( items. len( ) , 1 ) ;
1081
+ let ( sig, body) = match items[ 0 ] . node {
1082
+ ast:: ImplItemKind :: Method ( ref sig, ref body) => {
1083
+ ( sig, body)
1084
+ }
1085
+ _ => unreachable ! ( ) ,
1086
+ } ;
1099
1087
1100
- quote_item ! (
1101
- ctx. ext_cx( ) ,
1102
- impl XxxUnused {
1103
- #[ inline]
1104
- $fn_prefix $ctor_name( $params $param_name : $bitfield_ty)
1105
- -> $unit_field_int_ty {
1106
- let bitfield_unit_val = $body;
1107
- let $param_name = $param_name
1108
- as $bitfield_int_ty
1109
- as $unit_field_int_ty;
1110
- let mask = $mask as $unit_field_int_ty;
1111
- let $param_name = ( $param_name << $offset) & mask;
1112
- bitfield_unit_val | $param_name
1113
- }
1114
- }
1115
- ) . unwrap ( )
1116
- }
1117
- _ => unreachable ! ( ) ,
1088
+ let params = sig. decl . clone ( ) . unwrap ( ) . inputs ;
1089
+ let param_name = bitfield_getter_name ( ctx, parent, self . name ( ) ) ;
1090
+
1091
+ let bitfield_ty_item = ctx. resolve_item ( self . ty ( ) ) ;
1092
+ let bitfield_ty = bitfield_ty_item. expect_type ( ) ;
1093
+ let bitfield_ty_layout = bitfield_ty. layout ( ctx)
1094
+ . expect ( "Bitfield without layout? Gah!" ) ;
1095
+ let bitfield_int_ty = BlobTyBuilder :: new ( bitfield_ty_layout) . build ( ) ;
1096
+ let bitfield_ty = bitfield_ty
1097
+ . to_rust_ty_or_opaque ( ctx, bitfield_ty_item) ;
1098
+
1099
+ let offset = self . offset_into_unit ( ) ;
1100
+ let mask = self . mask ( ) ;
1101
+
1102
+ // If we're generating unstable Rust, add the const.
1103
+ let fn_prefix = if ctx. options ( ) . unstable_rust {
1104
+ quote_tokens ! ( ctx. ext_cx( ) , pub const fn )
1105
+ } else {
1106
+ quote_tokens ! ( ctx. ext_cx( ) , pub fn )
1107
+ } ;
1108
+
1109
+ quote_item ! (
1110
+ ctx. ext_cx( ) ,
1111
+ impl XxxUnused {
1112
+ #[ inline]
1113
+ $fn_prefix $ctor_name( $params $param_name : $bitfield_ty)
1114
+ -> $unit_field_int_ty {
1115
+ let bitfield_unit_val = $body;
1116
+ let $param_name = $param_name
1117
+ as $bitfield_int_ty
1118
+ as $unit_field_int_ty;
1119
+ let mask = $mask as $unit_field_int_ty;
1120
+ let $param_name = ( $param_name << $offset) & mask;
1121
+ bitfield_unit_val | $param_name
1118
1122
}
1119
1123
}
1120
- _ => unreachable ! ( ) ,
1121
- }
1124
+ ) . unwrap ( )
1122
1125
}
1123
1126
}
1124
1127
0 commit comments