create recovery timer mechanism #276
docs.yml
on: pull_request
Deploy Documentation
1m 23s
Annotations
94 warnings
empty `loop {}` wastes CPU cycles:
boards/recovery/src/main.rs#L144
warning: empty `loop {}` wastes CPU cycles
--> boards/recovery/src/main.rs:144:9
|
144 | loop {}
| ^^^^^^^
|
= help: you should either use `panic!()` or add a call pausing or sleeping the thread to the loop body
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop
= note: `#[warn(clippy::empty_loop)]` on by default
|
empty `loop {}` wastes CPU cycles:
boards/sensor/src/main.rs#L167
warning: empty `loop {}` wastes CPU cycles
--> boards/sensor/src/main.rs:167:9
|
167 | loop {}
| ^^^^^^^
|
= help: you should either use `panic!()` or add a call pausing or sleeping the thread to the loop body
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop
= note: `#[warn(clippy::empty_loop)]` on by default
|
using `clone` on type `[u8; 1024]` which implements the `Copy` trait:
boards/sensor/src/sbg_manager.rs#L134
warning: using `clone` on type `[u8; 1024]` which implements the `Copy` trait
--> boards/sensor/src/sbg_manager.rs:134:33
|
134 | let buf_clone = buf.clone();
| ^^^^^^^^^^^ help: try dereferencing it: `*buf`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
= note: `#[warn(clippy::clone_on_copy)]` on by default
|
this function has too many arguments (8/7):
boards/sensor/src/communication.rs#L64
warning: this function has too many arguments (8/7)
--> boards/sensor/src/communication.rs:64:5
|
64 | / pub fn new<S>(
65 | | can_rx: Pin<PA23, AlternateI>,
66 | | can_tx: Pin<PA22, AlternateI>,
67 | | pclk_can: Pclk<Can0, Gclk0Id>,
... |
72 | | loopback: bool,
73 | | ) -> (Self, S::Inc)
| |_______________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
= note: `#[warn(clippy::too_many_arguments)]` on by default
|
very complex type used. Consider factoring parts into `type` definitions:
boards/sensor/src/communication.rs#L54
warning: very complex type used. Consider factoring parts into `type` definitions
--> boards/sensor/src/communication.rs:54:14
|
54 | pub can: Can<
| ______________^
55 | | 'static,
56 | | Can0,
57 | | Dependencies<Can0, Gclk0Id, Pin<PA23, Alternate<I>>, Pin<PA22, Alternate<I>>, CAN0>,
58 | | Capacities,
59 | | >,
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `#[warn(clippy::type_complexity)]` on by default
|
this function has too many arguments (8/7):
boards/recovery/src/communication.rs#L62
warning: this function has too many arguments (8/7)
--> boards/recovery/src/communication.rs:62:5
|
62 | / pub fn new<S>(
63 | | can_rx: Pin<PA23, AlternateI>,
64 | | can_tx: Pin<PA22, AlternateI>,
65 | | pclk_can: Pclk<Can0, Gclk0Id>,
... |
70 | | loopback: bool,
71 | | ) -> (Self, S::Inc)
| |_______________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
= note: `#[warn(clippy::too_many_arguments)]` on by default
|
very complex type used. Consider factoring parts into `type` definitions:
boards/recovery/src/communication.rs#L52
warning: very complex type used. Consider factoring parts into `type` definitions
--> boards/recovery/src/communication.rs:52:14
|
52 | pub can: Can<
| ______________^
53 | | 'static,
54 | | Can0,
55 | | Dependencies<Can0, Gclk0Id, Pin<PA23, Alternate<I>>, Pin<PA22, Alternate<I>>, CAN0>,
56 | | Capacities,
57 | | >,
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `#[warn(clippy::type_complexity)]` on by default
|
variants `DeployDrogue` and `DeployMain` are never constructed:
boards/recovery/src/state_machine/mod.rs#L77
warning: variants `DeployDrogue` and `DeployMain` are never constructed
--> boards/recovery/src/state_machine/mod.rs:77:5
|
76 | pub enum RocketEvents {
| ------------ variants in this enum
77 | DeployDrogue,
| ^^^^^^^^^^^^
78 | DeployMain,
| ^^^^^^^^^^
|
methods `lock_can`, `lock_data_manager`, `lock_gpio`, and `lock_recovery_timer` are never used:
boards/recovery/src/state_machine/mod.rs#L18
warning: methods `lock_can`, `lock_data_manager`, `lock_gpio`, and `lock_recovery_timer` are never used
--> boards/recovery/src/state_machine/mod.rs:18:8
|
17 | pub trait StateMachineSharedResources {
| --------------------------- methods in this trait
18 | fn lock_can(&mut self, f: &dyn Fn(&mut CanDevice0));
| ^^^^^^^^
19 | fn lock_data_manager(&mut self, f: &dyn Fn(&mut DataManager));
| ^^^^^^^^^^^^^^^^^
20 | fn lock_gpio(&mut self, f: &dyn Fn(&mut GPIOManager));
| ^^^^^^^^^
21 | fn lock_recovery_timer(&mut self, f: &dyn Fn(&mut TimerCounter2));
| ^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` on by default
|
empty `loop {}` wastes CPU cycles:
boards/camera/src/main.rs#L127
warning: empty `loop {}` wastes CPU cycles
--> boards/camera/src/main.rs:127:9
|
127 | loop {}
| ^^^^^^^
|
= help: you should either use `panic!()` or add a call pausing or sleeping the thread to the loop body
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop
= note: `#[warn(clippy::empty_loop)]` on by default
|
an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true:
boards/camera/src/state_machine/mod.rs#L111
warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true
--> boards/camera/src/state_machine/mod.rs:111:1
|
111 | impl Into<state::StateData> for RocketStates {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: `impl From<Local> for Foreign` is allowed by the orphan rules, for more information see
https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into
= note: `#[warn(clippy::from_over_into)]` on by default
help: replace the `Into` implementation with `From<state_machine::RocketStates>`
|
111 ~ impl From<RocketStates> for state::StateData {
112 ~ fn from(val: RocketStates) -> Self {
113 ~ match val {
|
|
empty `loop {}` wastes CPU cycles:
boards/power/src/main.rs#L113
warning: empty `loop {}` wastes CPU cycles
--> boards/power/src/main.rs:113:9
|
113 | loop {}
| ^^^^^^^
|
= help: you should either use `panic!()` or add a call pausing or sleeping the thread to the loop body
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop
= note: `#[warn(clippy::empty_loop)]` on by default
|
this function has too many arguments (8/7):
boards/power/src/communication.rs#L60
warning: this function has too many arguments (8/7)
--> boards/power/src/communication.rs:60:5
|
60 | / pub fn new<S>(
61 | | can_rx: Pin<PA23, AlternateI>,
62 | | can_tx: Pin<PA22, AlternateI>,
63 | | pclk_can: Pclk<Can0, Gclk0Id>,
... |
68 | | loopback: bool,
69 | | ) -> (Self, S::Inc)
| |_______________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
= note: `#[warn(clippy::too_many_arguments)]` on by default
|
very complex type used. Consider factoring parts into `type` definitions:
boards/power/src/communication.rs#L50
warning: very complex type used. Consider factoring parts into `type` definitions
--> boards/power/src/communication.rs:50:14
|
50 | pub can: Can<
| ______________^
51 | | 'static,
52 | | Can0,
53 | | Dependencies<Can0, Gclk0Id, Pin<PA23, Alternate<I>>, Pin<PA22, Alternate<I>>, CAN0>,
54 | | Capacities,
55 | | >,
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `#[warn(clippy::type_complexity)]` on by default
|
fields `data_manager` and `can0` are never read:
boards/power/src/main.rs#L35
warning: fields `data_manager` and `can0` are never read
--> boards/power/src/main.rs:35:9
|
35 | data_manager: DataManager,
| ^^^^^^^^^^^^
36 | can0: CanDevice0,
| ^^^^
...
52 | fn init(cx: init::Context) -> (Shared, Local, init::Monotonics) {
| ------ fields in this struct
|
method `handle_data` is never used:
boards/power/src/data_manager.rs#L10
warning: method `handle_data` is never used
--> boards/power/src/data_manager.rs:10:12
|
6 | impl DataManager {
| ---------------- method in this implementation
...
10 | pub fn handle_data(&mut self, _data: Message) {
| ^^^^^^^^^^^
|
field `line_interrupts` is never read:
boards/power/src/communication.rs#L56
warning: field `line_interrupts` is never read
--> boards/power/src/communication.rs:56:5
|
49 | pub struct CanDevice0 {
| ---------- field in this struct
...
56 | line_interrupts: OwnedInterruptSet<Can0, EnabledLine0>,
| ^^^^^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` on by default
|
you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`:
boards/camera/src/data_manager.rs#L115
warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
--> boards/camera/src/data_manager.rs:115:47
|
115 | messages::Data::Sensor(sensor) => match sensor.data {
| _______________________________________________^
116 | | messages::sensor::SensorData::Air(air_data) => {
117 | | self.air = Some(air_data);
118 | | }
119 | | _ => {}
120 | | },
| |_____________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
help: try
|
115 ~ messages::Data::Sensor(sensor) => if let messages::sensor::SensorData::Air(air_data) = sensor.data {
116 + self.air = Some(air_data);
117 ~ },
|
|
you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`:
boards/camera/src/data_manager.rs#L114
warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
--> boards/camera/src/data_manager.rs:114:9
|
114 | / match data.data {
115 | | messages::Data::Sensor(sensor) => match sensor.data {
116 | | messages::sensor::SensorData::Air(air_data) => {
117 | | self.air = Some(air_data);
... |
121 | | _ => {}
122 | | }
| |_________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
= note: `#[warn(clippy::single_match)]` on by default
help: try
|
114 ~ if let messages::Data::Sensor(sensor) = data.data { match sensor.data {
115 + messages::sensor::SensorData::Air(air_data) => {
116 + self.air = Some(air_data);
117 + }
118 + _ => {}
119 + } }
|
|
this function has too many arguments (8/7):
boards/camera/src/communication.rs#L58
warning: this function has too many arguments (8/7)
--> boards/camera/src/communication.rs:58:5
|
58 | / pub fn new<S>(
59 | | can_rx: Pin<PA23, AlternateI>,
60 | | can_tx: Pin<PA22, AlternateI>,
61 | | pclk_can: Pclk<Can0, Gclk0Id>,
... |
66 | | loopback: bool,
67 | | ) -> (Self, S::Inc)
| |_______________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
= note: `#[warn(clippy::too_many_arguments)]` on by default
|
very complex type used. Consider factoring parts into `type` definitions:
boards/camera/src/communication.rs#L48
warning: very complex type used. Consider factoring parts into `type` definitions
--> boards/camera/src/communication.rs:48:14
|
48 | pub can: Can<
| ______________^
49 | | 'static,
50 | | Can0,
51 | | Dependencies<Can0, Gclk0Id, Pin<PA23, Alternate<I>>, Pin<PA22, Alternate<I>>, CAN0>,
52 | | Capacities,
53 | | >,
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `#[warn(clippy::type_complexity)]` on by default
|
variants `DeployDrogue` and `DeployMain` are never constructed:
boards/camera/src/state_machine/mod.rs#L77
warning: variants `DeployDrogue` and `DeployMain` are never constructed
--> boards/camera/src/state_machine/mod.rs:77:5
|
76 | pub enum RocketEvents {
| ------------ variants in this enum
77 | DeployDrogue,
| ^^^^^^^^^^^^
78 | DeployMain,
| ^^^^^^^^^^
|
methods `lock_can`, `lock_data_manager`, `lock_gpio`, and `run_em` are never used:
boards/camera/src/state_machine/mod.rs#L18
warning: methods `lock_can`, `lock_data_manager`, `lock_gpio`, and `run_em` are never used
--> boards/camera/src/state_machine/mod.rs:18:8
|
17 | pub trait StateMachineSharedResources {
| --------------------------- methods in this trait
18 | fn lock_can(&mut self, f: &dyn Fn(&mut CanDevice0));
| ^^^^^^^^
19 | fn lock_data_manager(&mut self, f: &dyn Fn(&mut DataManager));
| ^^^^^^^^^^^^^^^^^
20 | fn lock_gpio(&mut self, f: &dyn Fn(&mut GPIOManager));
| ^^^^^^^^^
21 | fn run_em(&mut self, f: &dyn Fn() -> Result<(), HydraError>);
| ^^^^^^
|
= note: `#[warn(dead_code)]` on by default
|
you seem to be trying to use `match` for an equality check. Consider using `if`:
libraries/sbg-rs/src/sbg.rs#L479
warning: you seem to be trying to use `match` for an equality check. Consider using `if`
--> libraries/sbg-rs/src/sbg.rs:479:5
|
479 | / match logType {
480 | | // silently handle errors
481 | | // _SbgDebugLogType_SBG_DEBUG_LOG_TYPE_ERROR => error!("SBG Error"),
482 | | _SbgDebugLogType_SBG_DEBUG_LOG_TYPE_WARNING => warn!("SBG Warning"),
... |
485 | | _ => (),
486 | | };
| |_____^ help: try: `if logType == _SbgDebugLogType_SBG_DEBUG_LOG_TYPE_WARNING { warn!("SBG Warning") }`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
= note: `#[warn(clippy::single_match)]` on by default
|
unsafe function's docs miss `# Safety` section:
libraries/sbg-rs/src/sbg.rs#L459
warning: unsafe function's docs miss `# Safety` section
--> libraries/sbg-rs/src/sbg.rs:459:1
|
459 | / pub unsafe extern "C" fn sbgPlatformDebugLogMsg(
460 | | _pFileName: *const ::core::ffi::c_char,
461 | | _pFunctionName: *const ::core::ffi::c_char,
462 | | _line: u32,
... |
466 | | _pFormat: *const ::core::ffi::c_char,
467 | | ) {
| |_^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc
|
unneeded `return` statement:
libraries/sbg-rs/src/sbg.rs#L421
warning: unneeded `return` statement
--> libraries/sbg-rs/src/sbg.rs:421:23
|
421 | Err(_) => return _SbgErrorCode_SBG_READ_ERROR,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
421 | Err(_) => _SbgErrorCode_SBG_READ_ERROR,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
unneeded `return` statement:
libraries/sbg-rs/src/sbg.rs#L420
warning: unneeded `return` statement
--> libraries/sbg-rs/src/sbg.rs:420:22
|
420 | Ok(_) => return _SbgErrorCode_SBG_NO_ERROR,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
420 | Ok(_) => _SbgErrorCode_SBG_NO_ERROR,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
|
unsafe function's docs miss `# Safety` section:
libraries/sbg-rs/src/sbg.rs#L406
warning: unsafe function's docs miss `# Safety` section
--> libraries/sbg-rs/src/sbg.rs:406:5
|
406 | / pub unsafe extern "C" fn SbgFlushFunc(
407 | | pInterface: *mut _SbgInterface,
408 | | _flags: u32,
409 | | ) -> _SbgErrorCode {
| |______________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc
|
unsafe function's docs miss `# Safety` section:
libraries/sbg-rs/src/sbg.rs#L354
warning: unsafe function's docs miss `# Safety` section
--> libraries/sbg-rs/src/sbg.rs:354:5
|
354 | / pub unsafe extern "C" fn SbgEComReceiveLogFunc(
355 | | _pHandle: *mut _SbgEComHandle,
356 | | msgClass: u32,
357 | | msg: u32,
358 | | pLogData: *const _SbgBinaryLogData,
359 | | _pUserArg: *mut c_void,
360 | | ) -> _SbgErrorCode {
| |______________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc
|
unsafe function's docs miss `# Safety` section:
libraries/sbg-rs/src/sbg.rs#L315
warning: unsafe function's docs miss `# Safety` section
--> libraries/sbg-rs/src/sbg.rs:315:5
|
315 | / pub unsafe extern "C" fn SbgInterfaceWriteFunc(
316 | | pInterface: *mut _SbgInterface,
317 | | pBuffer: *const c_void,
318 | | bytesToWrite: usize,
319 | | ) -> _SbgErrorCode {
| |______________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc
|
the loop variable `i` is only used to index `array`:
libraries/sbg-rs/src/sbg.rs#L298
warning: the loop variable `i` is only used to index `array`
--> libraries/sbg-rs/src/sbg.rs:298:18
|
298 | for i in 0..(bytesToRead) {
| ^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop
= note: `#[warn(clippy::needless_range_loop)]` on by default
help: consider using an iterator
|
298 | for <item> in array.iter_mut().take((bytesToRead)) {
| ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
unneeded `return` statement:
libraries/sbg-rs/src/sbg.rs#L309
warning: unneeded `return` statement
--> libraries/sbg-rs/src/sbg.rs:309:9
|
309 | return _SbgErrorCode_SBG_NO_ERROR;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
= note: `#[warn(clippy::needless_return)]` on by default
help: remove `return`
|
309 - return _SbgErrorCode_SBG_NO_ERROR;
309 + _SbgErrorCode_SBG_NO_ERROR
|
|
unsafe function's docs miss `# Safety` section:
libraries/sbg-rs/src/sbg.rs#L281
warning: unsafe function's docs miss `# Safety` section
--> libraries/sbg-rs/src/sbg.rs:281:5
|
281 | / pub unsafe extern "C" fn SbgInterfaceReadFunc(
282 | | _pInterface: *mut _SbgInterface,
283 | | pBuffer: *mut c_void,
284 | | pBytesRead: *mut usize,
285 | | bytesToRead: usize,
286 | | ) -> _SbgErrorCode {
| |______________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc
= note: `#[warn(clippy::missing_safety_doc)]` on by default
|
very complex type used. Consider factoring parts into `type` definitions:
boards/communication/src/main.rs#L60
warning: very complex type used. Consider factoring parts into `type` definitions
--> boards/communication/src/main.rs:60:21
|
60 | sd_manager: SdManager<
| _____________________^
61 | | Spi<
62 | | Config<
63 | | Pads<
... |
73 | | Pin<PB14, Output<PushPull>>,
74 | | >,
| |_________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
|
this expression creates a reference which is immediately dereferenced by the compiler:
boards/communication/src/main.rs#L253
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> boards/communication/src/main.rs:253:42
|
253 | manager.write(&mut file, &msg_ser)?;
| ^^^^^^^^ help: change this to: `msg_ser`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
boards/communication/src/main.rs#L250
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> boards/communication/src/main.rs:250:42
|
250 | manager.write(&mut file, &msg_ser)?;
| ^^^^^^^^ help: change this to: `msg_ser`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
= note: `#[warn(clippy::needless_borrow)]` on by default
|
empty `loop {}` wastes CPU cycles:
boards/communication/src/main.rs#L200
warning: empty `loop {}` wastes CPU cycles
--> boards/communication/src/main.rs:200:9
|
200 | loop {}
| ^^^^^^^
|
= help: you should either use `panic!()` or add a call pausing or sleeping the thread to the loop body
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop
= note: `#[warn(clippy::empty_loop)]` on by default
|
this function has too many arguments (11/7):
boards/communication/src/health.rs#L58
warning: this function has too many arguments (11/7)
--> boards/communication/src/health.rs:58:5
|
58 | / pub fn new(
59 | | reader: Adc<ADC0>,
60 | | reader1: Adc<ADC1>,
61 | | pin_3v3: Pin<PB01, Alternate<B>>,
... |
69 | | pin_failover: Pin<PB05, Alternate<B>>,
70 | | ) -> Self {
| |_____________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
|
unneeded `return` statement:
boards/communication/src/data_manager.rs#L52
warning: unneeded `return` statement
--> boards/communication/src/data_manager.rs:52:9
|
52 | return RadioRate::Slow;
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
52 - return RadioRate::Slow;
52 + RadioRate::Slow
|
|
unneeded `return` statement:
boards/communication/src/communication.rs#L308
warning: unneeded `return` statement
--> boards/communication/src/communication.rs:308:13
|
308 | return Err(mavlink::error::MessageReadError::Io.into());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
308 - return Err(mavlink::error::MessageReadError::Io.into());
308 + Err(mavlink::error::MessageReadError::Io.into())
|
|
unneeded `return` statement:
boards/communication/src/communication.rs#L304
warning: unneeded `return` statement
--> boards/communication/src/communication.rs:304:21
|
304 | return Err(mavlink::error::MessageReadError::Io.into());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
304 - return Err(mavlink::error::MessageReadError::Io.into());
304 + Err(mavlink::error::MessageReadError::Io.into())
|
|
unneeded `return` statement:
boards/communication/src/communication.rs#L299
warning: unneeded `return` statement
--> boards/communication/src/communication.rs:299:21
|
299 | return Ok(postcard::from_bytes::<Message>(&msg.message)?);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
= note: `#[warn(clippy::needless_return)]` on by default
help: remove `return`
|
299 - return Ok(postcard::from_bytes::<Message>(&msg.message)?);
299 + Ok(postcard::from_bytes::<Message>(&msg.message)?)
|
|
empty `loop {}` wastes CPU cycles:
boards/beacon/src/main.rs#L88
warning: empty `loop {}` wastes CPU cycles
--> boards/beacon/src/main.rs:88:9
|
88 | loop {}
| ^^^^^^^
|
= help: you should either use `panic!()` or add a call pausing or sleeping the thread to the loop body
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop
= note: `#[warn(clippy::empty_loop)]` on by default
|
empty `loop {}` wastes CPU cycles:
boards/sensor_v2/src/main.rs#L64
warning: empty `loop {}` wastes CPU cycles
--> boards/sensor_v2/src/main.rs:64:9
|
64 | loop {}
| ^^^^^^^
|
= help: you should either use `panic!()` or add a call pausing or sleeping the thread to the loop body
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop
= note: `#[warn(clippy::empty_loop)]` on by default
|
this function has too many arguments (8/7):
boards/communication/src/communication.rs#L72
warning: this function has too many arguments (8/7)
--> boards/communication/src/communication.rs:72:5
|
72 | / pub fn new<S>(
73 | | can_rx: Pin<PA23, AlternateI>,
74 | | can_tx: Pin<PA22, AlternateI>,
75 | | pclk_can: Pclk<Can0, Gclk0Id>,
... |
80 | | loopback: bool,
81 | | ) -> (Self, S::Inc)
| |_______________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
= note: `#[warn(clippy::too_many_arguments)]` on by default
|
very complex type used. Consider factoring parts into `type` definitions:
boards/communication/src/communication.rs#L62
warning: very complex type used. Consider factoring parts into `type` definitions
--> boards/communication/src/communication.rs:62:14
|
62 | pub can: Can<
| ______________^
63 | | 'static,
64 | | Can0,
65 | | Dependencies<Can0, Gclk0Id, Pin<PA23, Alternate<I>>, Pin<PA22, Alternate<I>>, CAN0>,
66 | | Capacities,
67 | | >,
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `#[warn(clippy::type_complexity)]` on by default
|
unneeded `return` statement:
boards/beacon/src/data_manager.rs#L52
warning: unneeded `return` statement
--> boards/beacon/src/data_manager.rs:52:9
|
52 | return RadioRate::Slow;
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
= note: `#[warn(clippy::needless_return)]` on by default
help: remove `return`
|
52 - return RadioRate::Slow;
52 + RadioRate::Slow
|
|
field `data_manager` is never read:
boards/beacon/src/main.rs#L45
warning: field `data_manager` is never read
--> boards/beacon/src/main.rs:45:9
|
45 | data_manager: DataManager,
| ^^^^^^^^^^^^
...
59 | fn init(cx: init::Context) -> (Shared, Local, init::Monotonics) {
| ------ field in this struct
|
static `COM_ID` is never used:
boards/beacon/src/types.rs#L7
warning: static `COM_ID` is never used
--> boards/beacon/src/types.rs:7:12
|
7 | pub static COM_ID: Node = BeaconBoard;
| ^^^^^^
|
methods `get_logging_rate`, `take_sensors`, `clone_states`, and `handle_data` are never used:
boards/beacon/src/data_manager.rs#L45
warning: methods `get_logging_rate`, `take_sensors`, `clone_states`, and `handle_data` are never used
--> boards/beacon/src/data_manager.rs:45:12
|
24 | impl DataManager {
| ---------------- methods in this implementation
...
45 | pub fn get_logging_rate(&mut self) -> RadioRate {
| ^^^^^^^^^^^^^^^^
...
56 | pub fn take_sensors(&mut self) -> [Option<Message>; 13] {
| ^^^^^^^^^^^^
...
74 | pub fn clone_states(&self) -> [Option<StateData>; 1] {
| ^^^^^^^^^^^^
...
77 | pub fn handle_data(&mut self, data: Message) {
| ^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` on by default
|
unused variable: `m`:
boards/beacon/src/main.rs#L100
warning: unused variable: `m`
--> boards/beacon/src/main.rs:100:50
|
100 | fn send_external(cx: send_external::Context, m: Message) {
| ^ help: if this is intentional, prefix it with an underscore: `_m`
|
unused variable: `cx`:
boards/beacon/src/main.rs#L100
warning: unused variable: `cx`
--> boards/beacon/src/main.rs:100:22
|
100 | fn send_external(cx: send_external::Context, m: Message) {
| ^^ help: if this is intentional, prefix it with an underscore: `_cx`
|
unused variable: `m`:
boards/beacon/src/main.rs#L95
warning: unused variable: `m`
--> boards/beacon/src/main.rs:95:50
|
95 | fn send_internal(cx: send_internal::Context, m: Message) {
| ^ help: if this is intentional, prefix it with an underscore: `_m`
|
unused variable: `cx`:
boards/beacon/src/main.rs#L95
warning: unused variable: `cx`
--> boards/beacon/src/main.rs:95:22
|
95 | fn send_internal(cx: send_internal::Context, m: Message) {
| ^^ help: if this is intentional, prefix it with an underscore: `_cx`
|
= note: `#[warn(unused_variables)]` on by default
|
variable does not need to be mutable:
boards/beacon/src/main.rs#L69
warning: variable does not need to be mutable
--> boards/beacon/src/main.rs:69:13
|
69 | let mut red_led = gpioa.pa10.into_push_pull_output();
| ----^^^^^^^
| |
| help: remove this `mut`
|
variable does not need to be mutable:
boards/beacon/src/main.rs#L68
warning: variable does not need to be mutable
--> boards/beacon/src/main.rs:68:13
|
68 | let mut green_led = gpioa.pa9.into_push_pull_output();
| ----^^^^^^^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
|
field `data_manager` is never read:
boards/sensor_v2/src/main.rs#L26
warning: field `data_manager` is never read
--> boards/sensor_v2/src/main.rs:26:9
|
26 | data_manager: DataManager,
| ^^^^^^^^^^^^
...
35 | fn init(mut ctx: init::Context) -> (SharedResources, LocalResources, init::Monotonics) {
| --------------- field in this struct
|
methods `clone_sensors` and `handle_data` are never used:
boards/sensor_v2/src/data_manager.rs#L32
warning: methods `clone_sensors` and `handle_data` are never used
--> boards/sensor_v2/src/data_manager.rs:32:12
|
19 | impl DataManager {
| ---------------- methods in this implementation
...
32 | pub fn clone_sensors(&self) -> [Option<SensorData>; 10] {
| ^^^^^^^^^^^^^
...
47 | pub fn handle_data(&mut self, data: Message) -> Result<(), HydraError> {
| ^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` on by default
|
variable does not need to be mutable:
boards/sensor_v2/src/main.rs#L68
warning: variable does not need to be mutable
--> boards/sensor_v2/src/main.rs:68:21
|
68 | fn sleep_system(mut cx: sleep_system::Context) {
| ----^^
| |
| help: remove this `mut`
|
unused variable: `cx`:
boards/sensor_v2/src/main.rs#L68
warning: unused variable: `cx`
--> boards/sensor_v2/src/main.rs:68:25
|
68 | fn sleep_system(mut cx: sleep_system::Context) {
| ^^ help: if this is intentional, prefix it with an underscore: `_cx`
|
variable does not need to be mutable:
boards/sensor_v2/src/main.rs#L63
warning: variable does not need to be mutable
--> boards/sensor_v2/src/main.rs:63:13
|
63 | fn idle(mut ctx: idle::Context) -> ! {
| ----^^^
| |
| help: remove this `mut`
|
unused variable: `ctx`:
boards/sensor_v2/src/main.rs#L63
warning: unused variable: `ctx`
--> boards/sensor_v2/src/main.rs:63:17
|
63 | fn idle(mut ctx: idle::Context) -> ! {
| ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
|
variable does not need to be mutable:
boards/sensor_v2/src/main.rs#L49
warning: variable does not need to be mutable
--> boards/sensor_v2/src/main.rs:49:13
|
49 | let mut button = gpioc.pc13.into_floating_input();
| ----^^^^^^
| |
| help: remove this `mut`
|
variable does not need to be mutable:
boards/sensor_v2/src/main.rs#L35
warning: variable does not need to be mutable
--> boards/sensor_v2/src/main.rs:35:13
|
35 | fn init(mut ctx: init::Context) -> (SharedResources, LocalResources, init::Monotonics) {
| ----^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
|
unused variable: `info`:
boards/sensor_v2/src/main.rs#L16
warning: unused variable: `info`
--> boards/sensor_v2/src/main.rs:16:10
|
16 | fn panic(info: &core::panic::PanicInfo) -> ! {
| ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
|
= note: `#[warn(unused_variables)]` on by default
|
creating a shared reference to mutable static is discouraged:
libraries/sbg-rs/src/sbg.rs#L498
warning: creating a shared reference to mutable static is discouraged
--> libraries/sbg-rs/src/sbg.rs:498:15
|
498 | match &RTC {
| ^^^^ shared reference to mutable static
|
= note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
= note: this will be a hard error in the 2024 edition
= note: this shared reference has lifetime `'static`, but if the static ever gets mutated, or a mutable reference is created, then any further use of this shared reference is Undefined Behavior
= note: `#[warn(static_mut_refs)]` on by default
help: use `addr_of!` instead to create a raw pointer
|
498 | match addr_of!(RTC) {
| ~~~~~~~~~~~~~
|
redundant field names in struct initialization:
libraries/sbg-rs/src/sbg.rs#L140
warning: redundant field names in struct initialization
--> libraries/sbg-rs/src/sbg.rs:140:13
|
140 | handle: handle,
| ^^^^^^^^^^^^^^ help: replace it with: `handle`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names
= note: `#[warn(clippy::redundant_field_names)]` on by default
|
unused import: `self::_SbgEComOutputMonitoringPoint as SbgEComOutputMonitoringPoint`:
libraries/sbg-rs/src/bindings.rs#L13476
warning: unused import: `self::_SbgEComOutputMonitoringPoint as SbgEComOutputMonitoringPoint`
--> libraries/sbg-rs/src/bindings.rs:13476:9
|
13476 | pub use self::_SbgEComOutputMonitoringPoint as SbgEComOutputMonitoringPoint;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComClockUtcStatus as SbgEComClockUtcStatus`:
libraries/sbg-rs/src/bindings.rs#L10537
warning: unused import: `self::_SbgEComClockUtcStatus as SbgEComClockUtcStatus`
--> libraries/sbg-rs/src/bindings.rs:10537:9
|
10537 | pub use self::_SbgEComClockUtcStatus as SbgEComClockUtcStatus;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComClockStatus as SbgEComClockStatus`:
libraries/sbg-rs/src/bindings.rs#L10527
warning: unused import: `self::_SbgEComClockStatus as SbgEComClockStatus`
--> libraries/sbg-rs/src/bindings.rs:10527:9
|
10527 | pub use self::_SbgEComClockStatus as SbgEComClockStatus;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComCanBusStatus as SbgEComCanBusStatus`:
libraries/sbg-rs/src/bindings.rs#L10251
warning: unused import: `self::_SbgEComCanBusStatus as SbgEComCanBusStatus`
--> libraries/sbg-rs/src/bindings.rs:10251:9
|
10251 | pub use self::_SbgEComCanBusStatus as SbgEComCanBusStatus;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComGpsHdtStatus as SbgEComGpsHdtStatus`:
libraries/sbg-rs/src/bindings.rs#L8535
warning: unused import: `self::_SbgEComGpsHdtStatus as SbgEComGpsHdtStatus`
--> libraries/sbg-rs/src/bindings.rs:8535:9
|
8535 | pub use self::_SbgEComGpsHdtStatus as SbgEComGpsHdtStatus;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComGpsPosType as SbgEComGpsPosType`:
libraries/sbg-rs/src/bindings.rs#L8523
warning: unused import: `self::_SbgEComGpsPosType as SbgEComGpsPosType`
--> libraries/sbg-rs/src/bindings.rs:8523:9
|
8523 | pub use self::_SbgEComGpsPosType as SbgEComGpsPosType;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComGpsPosStatus as SbgEComGpsPosStatus`:
libraries/sbg-rs/src/bindings.rs#L8497
warning: unused import: `self::_SbgEComGpsPosStatus as SbgEComGpsPosStatus`
--> libraries/sbg-rs/src/bindings.rs:8497:9
|
8497 | pub use self::_SbgEComGpsPosStatus as SbgEComGpsPosStatus;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComGpsVelType as SbgEComGpsVelType`:
libraries/sbg-rs/src/bindings.rs#L8485
warning: unused import: `self::_SbgEComGpsVelType as SbgEComGpsVelType`
--> libraries/sbg-rs/src/bindings.rs:8485:9
|
8485 | pub use self::_SbgEComGpsVelType as SbgEComGpsVelType;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComGpsVelStatus as SbgEComGpsVelStatus`:
libraries/sbg-rs/src/bindings.rs#L8473
warning: unused import: `self::_SbgEComGpsVelStatus as SbgEComGpsVelStatus`
--> libraries/sbg-rs/src/bindings.rs:8473:9
|
8473 | pub use self::_SbgEComGpsVelStatus as SbgEComGpsVelStatus;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComSolutionMode as SbgEComSolutionMode`:
libraries/sbg-rs/src/bindings.rs#L8004
warning: unused import: `self::_SbgEComSolutionMode as SbgEComSolutionMode`
--> libraries/sbg-rs/src/bindings.rs:8004:9
|
8004 | pub use self::_SbgEComSolutionMode as SbgEComSolutionMode;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComCmd as SbgEComCmd`:
libraries/sbg-rs/src/bindings.rs#L7306
warning: unused import: `self::_SbgEComCmd as SbgEComCmd`
--> libraries/sbg-rs/src/bindings.rs:7306:9
|
7306 | pub use self::_SbgEComCmd as SbgEComCmd;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComIdThirdParty as SbgEComIdThirdParty`:
libraries/sbg-rs/src/bindings.rs#L7212
warning: unused import: `self::_SbgEComIdThirdParty as SbgEComIdThirdParty`
--> libraries/sbg-rs/src/bindings.rs:7212:9
|
7212 | pub use self::_SbgEComIdThirdParty as SbgEComIdThirdParty;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComIdNmea1Log as SbgEComIdNmea1Log`:
libraries/sbg-rs/src/bindings.rs#L7184
warning: unused import: `self::_SbgEComIdNmea1Log as SbgEComIdNmea1Log`
--> libraries/sbg-rs/src/bindings.rs:7184:9
|
7184 | pub use self::_SbgEComIdNmea1Log as SbgEComIdNmea1Log;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComNmeaLog as SbgEComNmeaLog`:
libraries/sbg-rs/src/bindings.rs#L7152
warning: unused import: `self::_SbgEComNmeaLog as SbgEComNmeaLog`
--> libraries/sbg-rs/src/bindings.rs:7152:9
|
7152 | pub use self::_SbgEComNmeaLog as SbgEComNmeaLog;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComLog1MsgId as SbgEComLog1`:
libraries/sbg-rs/src/bindings.rs#L7126
warning: unused import: `self::_SbgEComLog1MsgId as SbgEComLog1`
--> libraries/sbg-rs/src/bindings.rs:7126:9
|
7126 | pub use self::_SbgEComLog1MsgId as SbgEComLog1;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgEComLog as SbgEComLog`:
libraries/sbg-rs/src/bindings.rs#L7118
warning: unused import: `self::_SbgEComLog as SbgEComLog`
--> libraries/sbg-rs/src/bindings.rs:7118:9
|
7118 | pub use self::_SbgEComLog as SbgEComLog;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `self::_SbgSBSeekOrigin as SbgSBSeekOrigin`:
libraries/sbg-rs/src/bindings.rs#L6822
warning: unused import: `self::_SbgSBSeekOrigin as SbgSBSeekOrigin`
--> libraries/sbg-rs/src/bindings.rs:6822:9
|
6822 | pub use self::_SbgSBSeekOrigin as SbgSBSeekOrigin;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
unused import: `messages::sensor::Sensor`:
boards/beacon/src/main.rs#L21
warning: unused import: `messages::sensor::Sensor`
--> boards/beacon/src/main.rs:21:5
|
21 | use messages::sensor::Sensor;
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `common_arm::SdManager`:
boards/beacon/src/main.rs#L8
warning: unused import: `common_arm::SdManager`
--> boards/beacon/src/main.rs:8:5
|
8 | use common_arm::SdManager;
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
unneeded `return` statement:
libraries/common-arm/src/health/health_manager.rs#L74
warning: unneeded `return` statement
--> libraries/common-arm/src/health/health_manager.rs:74:13
|
74 | return HealthState::Warning;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
74 - return HealthState::Warning;
74 + HealthState::Warning
|
|
unneeded `return` statement:
libraries/common-arm/src/health/health_manager.rs#L66
warning: unneeded `return` statement
--> libraries/common-arm/src/health/health_manager.rs:66:17
|
66 | return HealthState::Nominal;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
= note: `#[warn(clippy::needless_return)]` on by default
help: remove `return`
|
66 - return HealthState::Nominal;
66 + HealthState::Nominal
|
|
Deploy Documentation
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
Deploy Documentation
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
Deploy Documentation
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
Deploy Documentation
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
Deploy Documentation
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
Deploy Documentation
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|