- Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-false-negativeIssue: The lint should have been triggered on code, but wasn'tIssue: The lint should have been triggered on code, but wasn'tI-suggestion-causes-errorIssue: The suggestions provided by this Lint cause an ICE/error when appliedIssue: The suggestions provided by this Lint cause an ICE/error when applied
Description
I ran cargo clippy --fix
on my project, and it failed with the following output:
Compiling uzurion-launcher v0.0.0 (/home/ludovic/Desktop/prog/react-uzurion-launcher/src-tauri) warning: failed to automatically apply fixes suggested by rustc to crate `uzurion_launcher` after fixes were automatically applied the compiler reported errors within these files: * src/event.rs * src/login/microsoft/mod.rs This likely indicates a bug in either rustc or cargo itself, and we would appreciate a bug report! You're likely to see a number of compiler warnings after this message which cargo attempted to fix but failed. If you could open an issue at https://github.com/rust-lang/rust/issues quoting the full output of this command we'd be very appreciative! Note that you may be able to make some more progress in the near-term fixing code with the `--broken-code` flag The following errors were reported: warning: `crate` references the macro call's crate --> src/event.rs:29:13 | 29 | crate::consts::events::ERROR, | ^^^^^ help: to reference the macro definition's crate, use: `$crate` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def = note: `#[warn(clippy::crate_in_macro_def)]` on by default error[E0308]: `match` arms have incompatible types --> src/event.rs:12:9 | 12 | / { 13 | | let __event = $event; 14 | | let __payload = $payload; 15 | | ... | 19 | | } 20 | | } | |_________^ expected struct `tauri::Window`, found `()` | ::: src/login/microsoft/mod.rs:110:5 | 110 | / match WindowBuilder::new(&app, "microsoft-login", WindowUrl::External(url)) 111 | | .focused(true) 112 | | .title("Microsoft login") 113 | | .build() | |________________- `match` arms have incompatible types 114 | { 115 | Ok(w) => w, | - this is found to be of type `tauri::Window` ... 118 | send_error!(app, "Cannot create window", e); | ------------------------------------------- in this macro invocation | = note: expected struct `tauri::Window` found unit type `()` = note: this error originates in the macro `$crate::send_event` which comes from the expansion of the macro `send_error` (in Nightly builds, run with -Z macro-backtrace for more info) error: aborting due to previous error; 1 warning emitted For more information about this error, try `rustc --explain E0308`. Original diagnostics will follow. warning: `crate` references the macro call's crate --> src/event.rs:27:9 | 27 | crate::send_event!{ | ^^^^^ help: to reference the macro definition's crate, use: `$crate` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def = note: `#[warn(clippy::crate_in_macro_def)]` on by default warning: useless use of `format!` --> src/login/microsoft/requests.rs:52:47 | 52 | let content_type = HeaderValue::from_str(&format!("{}", "application/x-www-form-urlencoded")).expect("Header value creation bug"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"application/x-www-form-urlencoded".to_string()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format = note: `#[warn(clippy::useless_format)]` on by default warning: unneeded `return` statement --> src/login/microsoft/mod.rs:63:25 | 63 | return; | ^^^^^^ | = 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` warning: unneeded `return` statement --> src/login/microsoft/mod.rs:67:25 | 67 | return; | ^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return = help: remove `return` warning: unneeded `return` statement --> src/login/microsoft/mod.rs:119:13 | 119 | return; | ^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return = help: remove `return` warning: unneeded `return` statement --> src/login/microsoft/mod.rs:178:13 | 178 | return; | ^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return = help: remove `return` warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` --> src/routing/microsoft.rs:22:5 | 22 | app.get_window(windows::MICROSOFT_LOGIN).map(|w| { | _____^ | |_____| | || 23 | || if let Err(e) = w.close() { 24 | || error!("Could not close microsoft-login window: {:?}", e); 25 | || } 26 | || }); | ||______^- help: try this: `if let Some(w) = app.get_window(windows::MICROSOFT_LOGIN) { ... }` | |_______| | | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn = note: `#[warn(clippy::option_map_unit_fn)]` on by default warning: `uzurion-launcher` (bin "uzurion-launcher" test) generated 7 warnings (1 duplicate) warning: `uzurion-launcher` (bin "uzurion-launcher") generated 7 warnings (6 duplicates) Finished dev [unoptimized + debuginfo] target(s) in 6.03s
Reproduction:
I was working on this project, on the commit e5087b1591032157c90d28e7925e5282df8456eb
Versions:
rustup: 1.25.1
rustc: 1.66.0
cargo: 1.66.0
clippy: 0.1.66
Issue
The problem is that clippy considers that the return at src-tauri/src/login/microsoft/mod.rs:119
is unneeded, but it actually makes the function return at the end of the match arm, thus the arm does not need to return a Window<Wry>
. When clippy removes it, the second arms return ()
, thus it is incompatible with the first one (which returns Window<Wry>
).
C0ffeeCode
Metadata
Metadata
Assignees
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-false-negativeIssue: The lint should have been triggered on code, but wasn'tIssue: The lint should have been triggered on code, but wasn'tI-suggestion-causes-errorIssue: The suggestions provided by this Lint cause an ICE/error when appliedIssue: The suggestions provided by this Lint cause an ICE/error when applied