From 09c27121e39d0030cdab3d21bf9b3dad245dc13b Mon Sep 17 00:00:00 2001 From: Kazushige Taniguchi Date: Sun, 3 Mar 2024 23:48:05 +0900 Subject: [PATCH] The field name is used in the enumerated_value name, if the enumerated_value does not have a name. Because a derived enumerate values in patched svd are written over by a base enumerated balue. --- CHANGELOG.md | 2 ++ src/generate/register.rs | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a1db29b8..f208d9b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ## [Unreleased] +- Fixed re-export of derived enumeration values + ## [v0.32.0] - 2024-02-26 - Bump MSRV to 1.74 diff --git a/src/generate/register.rs b/src/generate/register.rs index 786f2858..17cbf624 100644 --- a/src/generate/register.rs +++ b/src/generate/register.rs @@ -691,8 +691,13 @@ pub fn fields( if let Some(dpath) = dpath { epath = Some(derive_enumerated_values(&mut ev, &dpath, &fpath, index)?); // TODO: remove this hack - if let Some(epath) = epath.as_ref() { - ev = (*index.evs.get(epath).unwrap()).clone(); + //if let Some(epath) = epath.as_ref() { + // ev = (*index.evs.get(epath).unwrap()).clone(); + //} + // The field name is used in the enumerated_value name, + // if the enumerated_value does not have a name. + if ev.name == None { + ev.name = Some(f.name.clone()); } } else if let Some(path) = fdpath.as_ref() { epath = Some(