rust-embedded / svd2rust

Generate Rust register maps (`struct`s) from SVD files
Apache License 2.0
674 stars 147 forks source link

thread 'main' panicked at [...]: called `Option::unwrap()` on a `None` value #822

Closed jessebraham closed 4 months ago

jessebraham commented 4 months ago

When trying to update from 0.31.5 to 0.32.0, our automation task now panics when trying to generate the PAC:

thread 'main' panicked at /Users/jesse/.cargo/registry/src/index.crates.io-6f17d22bba15001f/svd2rust-0.32.0/src/generate/interrupt.rs:50:73:
called `Option::unwrap()` on a `None` value
stack backtrace:
   0: rust_begin_unwind
             at /rustc/878c8a2a62d49ca5c454547ad67290a1df746cb5/library/std/src/panicking.rs:645:5
   1: core::panicking::panic_fmt
             at /rustc/878c8a2a62d49ca5c454547ad67290a1df746cb5/library/core/src/panicking.rs:72:14
   2: core::panicking::panic
             at /rustc/878c8a2a62d49ca5c454547ad67290a1df746cb5/library/core/src/panicking.rs:144:5
   3: core::option::unwrap_failed
             at /rustc/878c8a2a62d49ca5c454547ad67290a1df746cb5/library/core/src/option.rs:1985:5
   4: core::option::Option<T>::unwrap
             at /rustc/878c8a2a62d49ca5c454547ad67290a1df746cb5/library/core/src/option.rs:933:21
   5: svd2rust::generate::interrupt::render
             at /Users/jesse/.cargo/registry/src/index.crates.io-6f17d22bba15001f/svd2rust-0.32.0/src/generate/interrupt.rs:50:26
   6: svd2rust::generate::device::render
             at /Users/jesse/.cargo/registry/src/index.crates.io-6f17d22bba15001f/svd2rust-0.32.0/src/generate/device.rs:188:16
   7: xtask::generate_package
             at ./src/main.rs:215:17
   8: xtask::main::{{closure}}
             at ./src/main.rs:133:41
   9: core::iter::traits::iterator::Iterator::try_for_each::call::{{closure}}
             at /rustc/878c8a2a62d49ca5c454547ad67290a1df746cb5/library/core/src/iter/traits/iterator.rs:2499:26
  10: core::iter::traits::iterator::Iterator::try_fold
             at /rustc/878c8a2a62d49ca5c454547ad67290a1df746cb5/library/core/src/iter/traits/iterator.rs:2440:21
  11: core::iter::traits::iterator::Iterator::try_for_each
             at /rustc/878c8a2a62d49ca5c454547ad67290a1df746cb5/library/core/src/iter/traits/iterator.rs:2502:9
  12: xtask::main
             at ./src/main.rs:131:41
  13: core::ops::function::FnOnce::call_once
             at /rustc/878c8a2a62d49ca5c454547ad67290a1df746cb5/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

The offending line:
https://github.com/rust-embedded/svd2rust/blob/8fe79e62315b29512048c29236ccb8392b1cf84b/src/generate/interrupt.rs#L50

burrbull commented 4 months ago

https://github.com/burrbull/esp-pacs/blob/85eb7c51582e15093e7f79b175e29b08ff67ac84/xtask/src/main.rs#L207-L225

I've make a PR, but I don't see xtask in diff.

jessebraham commented 4 months ago

Ahh okay thanks. Sorry I did see your PR, but I guess Github isn't capable of displaying it correctly and I was confused why it was only partially complete 😁

I will check out your branch locally to review, thanks!