Re: [PATCH net-next v6 3/5] rust: add second `bindgen` pass for enum exhaustiveness checking
From: FUJITA Tomonori <fujita.tomonori@gmail.com>
Date: 2023-10-25 01:33:36
Also in:
rust-for-linux
From: FUJITA Tomonori <fujita.tomonori@gmail.com>
Date: 2023-10-25 01:33:36
Also in:
rust-for-linux
On Tue, 24 Oct 2023 16:29:16 +0000 Benno Lossin [off-list ref] wrote:
On 24.10.23 02:58, FUJITA Tomonori wrote:quoted
From: Miguel Ojeda <ojeda@kernel.org>I think this commit message should also explain what it is doing and not only the error below.
Looks ok?
This patch makes sure that the C's enum phy_state is sync with Rust
sides. If not, compiling fails. Note that this is a temporary
solution. It will be replaced with bindgen when it supports generating
the enum conversion code.
error[E0005]: refutable pattern in function argument
--> rust/bindings/bindings_enum_check.rs:29:6
|
29 | (phy_state::PHY_DOWN
| ______^
30 | | | phy_state::PHY_READY
31 | | | phy_state::PHY_HALTED
32 | | | phy_state::PHY_ERROR
... |
35 | | | phy_state::PHY_NOLINK
36 | | | phy_state::PHY_CABLETEST): phy_state,
| |______________________________^ pattern `phy_state::PHY_NEW` not covered
|
note: `phy_state` defined here
--> rust/bindings/bindings_generated_enum_check.rs:60739:10
|
60739 | pub enum phy_state {
| ^^^^^^^^^
...
60745 | PHY_NEW = 5,
| ------- not covered
= note: the matched value is of type `phy_state`