@@ -202,17 +202,13 @@ pub fn render(p_original: &Peripheral, index: &Index, config: &Config) -> Result
202202 let derive_infos = check_erc_derive_infos ( & mut ercs, & path, index, config) ?;
203203 let zipped = ercs. iter_mut ( ) . zip ( derive_infos. iter ( ) ) ;
204204 for ( mut erc, derive_info) in zipped {
205- match & mut erc {
206- & mut RegisterCluster :: Register ( register) => match derive_info {
207- DeriveInfo :: Implicit ( rpath) => {
208- debug ! (
209- "register {} implicitly derives from {}" ,
210- register. name, rpath. name
211- ) ;
212- }
213- _ => { }
214- } ,
215- _ => { }
205+ if let RegisterCluster :: Register ( register) = & mut erc {
206+ if let DeriveInfo :: Implicit ( rpath) = derive_info {
207+ debug ! (
208+ "register {} implicitly derives from {}" ,
209+ register. name, rpath. name
210+ ) ;
211+ }
216212 }
217213 }
218214
@@ -736,11 +732,11 @@ fn check_erc_derive_infos(
736732 let zipped = ercs. iter_mut ( ) . zip ( derive_infos_slice. iter_mut ( ) ) ;
737733 for ( mut erc, derive_info) in zipped {
738734 match & mut erc {
739- & mut RegisterCluster :: Register ( register) => {
735+ RegisterCluster :: Register ( register) => {
740736 let info_name = register. fullname ( config. ignore_groups ) . to_string ( ) ;
741737 let explicit_rpath = match & mut register. derived_from . clone ( ) {
742738 Some ( dpath) => {
743- let ( _, root) = find_root ( & dpath, path, index) ?;
739+ let ( _, root) = find_root ( dpath, path, index) ?;
744740 Some ( root)
745741 }
746742 None => None ,
@@ -751,7 +747,7 @@ fn check_erc_derive_infos(
751747 * derive_info = match explicit_rpath {
752748 None => {
753749 match compare_this_against_prev (
754- & register,
750+ register,
755751 & ty_name,
756752 path,
757753 index,
@@ -776,25 +772,22 @@ fn check_erc_derive_infos(
776772 Register :: Array ( ..) => {
777773 // Only match integer indeces when searching for disjoint arrays
778774 let re_string = util:: replace_suffix ( & info_name, "([0-9]+|%s)" ) ;
779- let re = Regex :: new ( format ! ( "^{re_string}$" ) . as_str ( ) ) . or_else ( |_| {
780- Err ( anyhow ! (
781- "Error creating regex for register {}" ,
782- register. name
783- ) )
775+ let re = Regex :: new ( format ! ( "^{re_string}$" ) . as_str ( ) ) . map_err ( |_| {
776+ anyhow ! ( "Error creating regex for register {}" , register. name)
784777 } ) ?;
785778 let ty_name = info_name. to_string ( ) ; // keep suffix for regex matching
786779 * derive_info = match explicit_rpath {
787780 None => {
788781 match compare_this_against_prev (
789- & register,
782+ register,
790783 & ty_name,
791784 path,
792785 index,
793786 & ercs_type_info,
794787 ) ? {
795788 Some ( root) => DeriveInfo :: Implicit ( root) ,
796789 None => compare_prev_against_this (
797- & register,
790+ register,
798791 & ty_name,
799792 & re,
800793 path,
@@ -809,7 +802,7 @@ fn check_erc_derive_infos(
809802 }
810803 } ;
811804 }
812- & mut RegisterCluster :: Cluster ( cluster) => {
805+ RegisterCluster :: Cluster ( cluster) => {
813806 * derive_info = DeriveInfo :: Cluster ;
814807 ercs_type_info. push ( ( cluster. name . to_string ( ) , None , erc, derive_info) ) ;
815808 }
@@ -854,9 +847,9 @@ fn compare_this_against_prev(
854847 let ( prev_name, prev_regex, prev_erc, _prev_derive_info) = prev;
855848 if let RegisterCluster :: Register ( _) = prev_erc {
856849 if let Some ( prev_re) = prev_regex {
857- if prev_re. is_match ( & ty_name) {
858- let ( source_reg, rpath) = find_root ( & prev_name, path, index) ?;
859- if is_derivable ( & source_reg, & reg) {
850+ if prev_re. is_match ( ty_name) {
851+ let ( source_reg, rpath) = find_root ( prev_name, path, index) ?;
852+ if is_derivable ( & source_reg, reg) {
860853 return Ok ( Some ( rpath) ) ;
861854 }
862855 }
@@ -869,7 +862,7 @@ fn compare_this_against_prev(
869862/// Compare the given type name against previous regexs, then inspect fields
870863fn compare_prev_against_this (
871864 reg : & MaybeArray < RegisterInfo > ,
872- ty_name : & String ,
865+ ty_name : & str ,
873866 re : & regex:: Regex ,
874867 path : & BlockPath ,
875868 index : & Index ,
@@ -884,12 +877,12 @@ fn compare_prev_against_this(
884877 // Arrays are covered with compare_this_against_prev
885878 continue ;
886879 }
887- if re. is_match ( & prev_name) {
880+ if re. is_match ( prev_name) {
888881 let loop_derive_info = match prev_derive_info {
889882 DeriveInfo :: Root => {
890883 // Get the RegisterPath for reg
891- let ( _, implicit_rpath) = find_root ( & ty_name, path, index) ?;
892- if is_derivable ( & prev_reg, & reg) {
884+ let ( _, implicit_rpath) = find_root ( ty_name, path, index) ?;
885+ if is_derivable ( prev_reg, reg) {
893886 * * prev_derive_info = DeriveInfo :: Implicit ( implicit_rpath) ;
894887 }
895888 DeriveInfo :: Root
@@ -1164,12 +1157,10 @@ fn expand_register(
11641157 // force expansion and rename if we're deriving an array that doesnt start at 0 so we don't get name collisions
11651158 let index: Cow < str > = if let Some ( dim_index) = & array_info. dim_index {
11661159 dim_index. first ( ) . unwrap ( ) . into ( )
1160+ } else if sequential_indexes_from0 {
1161+ "0" . into ( )
11671162 } else {
1168- if sequential_indexes_from0 {
1169- "0" . into ( )
1170- } else {
1171- "" . into ( )
1172- }
1163+ "" . into ( )
11731164 } ;
11741165 let array_convertible = match derive_info {
11751166 DeriveInfo :: Implicit ( _) => {
0 commit comments