@@ -202,17 +202,13 @@ pub fn render(p_original: &Peripheral, index: &Index, config: &Config) -> Result
202
202
let derive_infos = check_erc_derive_infos ( & mut ercs, & path, index, config) ?;
203
203
let zipped = ercs. iter_mut ( ) . zip ( derive_infos. iter ( ) ) ;
204
204
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
+ }
216
212
}
217
213
}
218
214
@@ -736,11 +732,11 @@ fn check_erc_derive_infos(
736
732
let zipped = ercs. iter_mut ( ) . zip ( derive_infos_slice. iter_mut ( ) ) ;
737
733
for ( mut erc, derive_info) in zipped {
738
734
match & mut erc {
739
- & mut RegisterCluster :: Register ( register) => {
735
+ RegisterCluster :: Register ( register) => {
740
736
let info_name = register. fullname ( config. ignore_groups ) . to_string ( ) ;
741
737
let explicit_rpath = match & mut register. derived_from . clone ( ) {
742
738
Some ( dpath) => {
743
- let ( _, root) = find_root ( & dpath, path, index) ?;
739
+ let ( _, root) = find_root ( dpath, path, index) ?;
744
740
Some ( root)
745
741
}
746
742
None => None ,
@@ -751,7 +747,7 @@ fn check_erc_derive_infos(
751
747
* derive_info = match explicit_rpath {
752
748
None => {
753
749
match compare_this_against_prev (
754
- & register,
750
+ register,
755
751
& ty_name,
756
752
path,
757
753
index,
@@ -776,25 +772,22 @@ fn check_erc_derive_infos(
776
772
Register :: Array ( ..) => {
777
773
// Only match integer indeces when searching for disjoint arrays
778
774
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)
784
777
} ) ?;
785
778
let ty_name = info_name. to_string ( ) ; // keep suffix for regex matching
786
779
* derive_info = match explicit_rpath {
787
780
None => {
788
781
match compare_this_against_prev (
789
- & register,
782
+ register,
790
783
& ty_name,
791
784
path,
792
785
index,
793
786
& ercs_type_info,
794
787
) ? {
795
788
Some ( root) => DeriveInfo :: Implicit ( root) ,
796
789
None => compare_prev_against_this (
797
- & register,
790
+ register,
798
791
& ty_name,
799
792
& re,
800
793
path,
@@ -809,7 +802,7 @@ fn check_erc_derive_infos(
809
802
}
810
803
} ;
811
804
}
812
- & mut RegisterCluster :: Cluster ( cluster) => {
805
+ RegisterCluster :: Cluster ( cluster) => {
813
806
* derive_info = DeriveInfo :: Cluster ;
814
807
ercs_type_info. push ( ( cluster. name . to_string ( ) , None , erc, derive_info) ) ;
815
808
}
@@ -854,9 +847,9 @@ fn compare_this_against_prev(
854
847
let ( prev_name, prev_regex, prev_erc, _prev_derive_info) = prev;
855
848
if let RegisterCluster :: Register ( _) = prev_erc {
856
849
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) {
860
853
return Ok ( Some ( rpath) ) ;
861
854
}
862
855
}
@@ -869,7 +862,7 @@ fn compare_this_against_prev(
869
862
/// Compare the given type name against previous regexs, then inspect fields
870
863
fn compare_prev_against_this (
871
864
reg : & MaybeArray < RegisterInfo > ,
872
- ty_name : & String ,
865
+ ty_name : & str ,
873
866
re : & regex:: Regex ,
874
867
path : & BlockPath ,
875
868
index : & Index ,
@@ -884,12 +877,12 @@ fn compare_prev_against_this(
884
877
// Arrays are covered with compare_this_against_prev
885
878
continue ;
886
879
}
887
- if re. is_match ( & prev_name) {
880
+ if re. is_match ( prev_name) {
888
881
let loop_derive_info = match prev_derive_info {
889
882
DeriveInfo :: Root => {
890
883
// 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) {
893
886
* * prev_derive_info = DeriveInfo :: Implicit ( implicit_rpath) ;
894
887
}
895
888
DeriveInfo :: Root
@@ -1164,12 +1157,10 @@ fn expand_register(
1164
1157
// force expansion and rename if we're deriving an array that doesnt start at 0 so we don't get name collisions
1165
1158
let index: Cow < str > = if let Some ( dim_index) = & array_info. dim_index {
1166
1159
dim_index. first ( ) . unwrap ( ) . into ( )
1160
+ } else if sequential_indexes_from0 {
1161
+ "0" . into ( )
1167
1162
} else {
1168
- if sequential_indexes_from0 {
1169
- "0" . into ( )
1170
- } else {
1171
- "" . into ( )
1172
- }
1163
+ "" . into ( )
1173
1164
} ;
1174
1165
let array_convertible = match derive_info {
1175
1166
DeriveInfo :: Implicit ( _) => {
0 commit comments