Skip to content

Commit 0a5d2fd

Browse files
committed
not found
1 parent c91d823 commit 0a5d2fd

File tree

2 files changed

+46
-7
lines changed

2 files changed

+46
-7
lines changed

src/patch/peripheral.rs

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -484,8 +484,15 @@ impl RegisterBlockExt for Peripheral {
484484
return Err(anyhow!("derive: incorrect syntax for {rname}"));
485485
};
486486

487-
self.get_register(rderive)
488-
.ok_or_else(|| anyhow!("register {rderive} not found"))?;
487+
self.get_register(rderive).ok_or_else(|| {
488+
anyhow!(
489+
"register {rderive} not found. Present registers: {}.`",
490+
self.registers()
491+
.map(|r| r.name.as_str())
492+
.collect::<Vec<_>>()
493+
.join(", ")
494+
)
495+
})?;
489496

490497
match self.get_mut_register(rname) {
491498
Some(register) => register.modify_from(info, VAL_LVL)?,
@@ -956,8 +963,15 @@ impl RegisterBlockExt for Cluster {
956963
return Err(anyhow!("derive: incorrect syntax for {rname}"));
957964
};
958965

959-
self.get_register(rderive)
960-
.ok_or_else(|| anyhow!("register {rderive} not found"))?;
966+
self.get_register(rderive).ok_or_else(|| {
967+
anyhow!(
968+
"register {rderive} not found. Present registers: {}.`",
969+
self.registers()
970+
.map(|r| r.name.as_str())
971+
.collect::<Vec<_>>()
972+
.join(", ")
973+
)
974+
})?;
961975

962976
match self.get_mut_register(rname) {
963977
Some(register) => register.modify_from(info, VAL_LVL)?,
@@ -1158,7 +1172,16 @@ fn collect_in_array(
11581172
}
11591173
}
11601174
if registers.is_empty() {
1161-
return Err(anyhow!("{path}: registers {rspec} not found"));
1175+
return Err(anyhow!(
1176+
"{path}: registers {rspec} not found. Present registers: {}.`",
1177+
regs.iter()
1178+
.filter_map(|rc| match rc {
1179+
RegisterCluster::Register(r) => Some(r.name.as_str()),
1180+
_ => None,
1181+
})
1182+
.collect::<Vec<_>>()
1183+
.join(", ")
1184+
));
11621185
}
11631186
registers.sort_by_key(|r| r.address_offset);
11641187
let Some((li, ri)) = spec_ind(rspec) else {
@@ -1255,7 +1278,16 @@ fn collect_in_cluster(
12551278
}
12561279
}
12571280
if registers.is_empty() {
1258-
return Err(anyhow!("{path}: registers {rspec} not found"));
1281+
return Err(anyhow!(
1282+
"{path}: registers {rspec} not found. Present registers: {}.`",
1283+
regs.iter()
1284+
.filter_map(|rc| match rc {
1285+
RegisterCluster::Register(r) => Some(r.name.as_str()),
1286+
_ => None,
1287+
})
1288+
.collect::<Vec<_>>()
1289+
.join(", ")
1290+
));
12591291
}
12601292
if single {
12611293
if registers.len() > 1 {

src/patch/register.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,14 @@ impl RegisterExt for Register {
374374
}
375375
}
376376
if fields.is_empty() {
377-
return Err(anyhow!("{}: fields {fspec} not found", self.name));
377+
return Err(anyhow!(
378+
"{}: fields {fspec} not found. Present fields: {}.`",
379+
self.name,
380+
self.fields()
381+
.map(|f| f.name.as_str())
382+
.collect::<Vec<_>>()
383+
.join(", ")
384+
));
378385
}
379386
fields.sort_by_key(|f| f.bit_range.offset);
380387
let Some((li, ri)) = spec_ind(fspec) else {

0 commit comments

Comments
 (0)