@@ -430,30 +430,15 @@ pub fn fields(
430430 evs_r = Some ( evs. clone ( ) ) ;
431431
432432 if let Some ( base) = base {
433- let pc = util:: replace_suffix ( base. field , "" ) ;
434- let pc = pc. to_sanitized_upper_case ( ) ;
435- let base_pc_r = Ident :: new ( & ( pc + "_A" ) , span) ;
436- derive_from_base ( mod_items, & base, & name_pc_a, & base_pc_r, & description) ;
433+ let pc_orig = util:: replace_suffix ( base. field , "" ) ;
437434
438- mod_items. extend ( quote ! {
439- #[ doc = #readerdoc]
440- pub struct #name_pc_r( crate :: FieldReader <#fty, #name_pc_a>) ;
441-
442- impl #name_pc_r {
443- pub ( crate ) fn new( bits: #fty) -> Self {
444- #name_pc_r( crate :: FieldReader :: new( bits) )
445- }
446- }
435+ let pc = pc_orig. to_sanitized_upper_case ( ) ;
436+ let base_pc_a = Ident :: new ( & ( pc + "_A" ) , span) ;
437+ derive_from_base ( mod_items, & base, & name_pc_a, & base_pc_a, & description) ;
447438
448- impl core:: ops:: Deref for #name_pc_r {
449- type Target = crate :: FieldReader <#fty, #name_pc_a>;
450-
451- #[ inline( always) ]
452- fn deref( & self ) -> & Self :: Target {
453- & self . 0
454- }
455- }
456- } ) ;
439+ let pc = pc_orig. to_sanitized_upper_case ( ) ;
440+ let base_pc_r = Ident :: new ( & ( pc + "_R" ) , span) ;
441+ derive_from_base ( mod_items, & base, & name_pc_r, & base_pc_r, & readerdoc) ;
457442 } else {
458443 let has_reserved_variant = evs. values . len ( ) != ( 1 << width) ;
459444 let variants = Variant :: from_enumerated_values ( evs) ?;
0 commit comments