@@ -633,7 +633,7 @@ fn expand_cluster(
633
633
634
634
match cluster {
635
635
Cluster :: Single ( info) => cluster_expanded. push ( RegisterBlockField {
636
- field : convert_svd_cluster ( cluster) ?,
636
+ field : convert_svd_cluster ( cluster, name ) ?,
637
637
description : info. description . as_ref ( ) . unwrap_or ( & info. name ) . into ( ) ,
638
638
offset : info. address_offset ,
639
639
size : cluster_size,
@@ -653,7 +653,7 @@ fn expand_cluster(
653
653
654
654
if array_convertible {
655
655
cluster_expanded. push ( RegisterBlockField {
656
- field : convert_svd_cluster ( & cluster) ?,
656
+ field : convert_svd_cluster ( & cluster, name ) ?,
657
657
description : info. description . as_ref ( ) . unwrap_or ( & info. name ) . into ( ) ,
658
658
offset : info. address_offset ,
659
659
size : cluster_size * array_info. dim ,
@@ -855,7 +855,7 @@ fn expand_svd_cluster(
855
855
let mut out = vec ! [ ] ;
856
856
857
857
match & cluster {
858
- Cluster :: Single ( _info) => out. push ( convert_svd_cluster ( cluster) ?) ,
858
+ Cluster :: Single ( _info) => out. push ( convert_svd_cluster ( cluster, name ) ?) ,
859
859
Cluster :: Array ( info, array_info) => {
860
860
let indices = array_info
861
861
. dim_index
@@ -884,14 +884,13 @@ fn expand_svd_cluster(
884
884
}
885
885
886
886
/// Convert a parsed `Cluster` into its `Field` equivalent
887
- fn convert_svd_cluster ( cluster : & Cluster ) -> Result < syn:: Field , syn:: Error > {
887
+ fn convert_svd_cluster ( cluster : & Cluster , name : Option < & str > ) -> Result < syn:: Field , syn:: Error > {
888
888
Ok ( match cluster {
889
- Cluster :: Single ( info) => new_syn_field (
890
- & info. name . to_sanitized_snake_case ( ) ,
891
- syn:: Type :: Path ( parse_str :: < syn:: TypePath > (
892
- & info. name . to_sanitized_upper_case ( ) ,
893
- ) ?) ,
894
- ) ,
889
+ Cluster :: Single ( info) => {
890
+ let ty_name = util:: replace_suffix ( & info. name , "" ) ;
891
+ let ty = name_to_ty ( & ty_name, name) ?;
892
+ new_syn_field ( & info. name . to_sanitized_snake_case ( ) , ty)
893
+ }
895
894
Cluster :: Array ( info, array_info) => {
896
895
let name = util:: replace_suffix ( & info. name , "" ) ;
897
896
0 commit comments