-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-false-positiveIssue: The lint was triggered on code it shouldn't haveIssue: The lint was triggered on code it shouldn't haveI-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
Summary
.
Lint Name
assertions_on_result_state
Reproducer
I tried this code:
use std::process::{Command};
use std::panic;
fn a(argc: isize, argv: *const *const u8) -> isize {
if argc > 1 {
unsafe {
match **argv.offset(1) as char {
'1' => {}
'2' => println!("foo"),
'3' => assert!(panic::catch_unwind(|| {}).is_ok()),
'4' => assert!(panic::catch_unwind(|| panic!()).is_err()),
'5' => assert!(Command::new("test").spawn().is_err()),
_ => panic!()
}
}
return 0
}
0
}
pub fn main() {}I saw this happen:
cargo clippy --fix -- -Aclippy::all -Wclippy::assertions_on_result_states
Checking clpy v0.1.0 (/tmp/clpy)
warning: failed to automatically apply fixes suggested by rustc to crate `clpy`
after fixes were automatically applied the compiler reported errors within these files:
* /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/macros.rs
* src/main.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:
error[E0308]: `match` arms have incompatible types
--> src/main.rs:14:24
|
9 | / match **argv.offset(1) as char {
10 | | '1' => {}
| | -- this is found to be of type `()`
11 | | '2' => println!("foo"),
| | --------------- this is found to be of type `()`
12 | | '3' => panic::catch_unwind(|| {}).unwrap(),
| | ----------------------------------- this is found to be of type `()`
13 | | '4' => assert!(panic::catch_unwind(|| panic!()).is_err()),
| | -------------------------------------------------- this is found to be of type `()`
14 | | '5' => Command::new("test").spawn().unwrap_err(),
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found struct `std::io::Error`
15 | | _ => panic!()
16 | | }
| |_____________- `match` arms have incompatible types
error: aborting due to previous error
For more information about this error, try `rustc --explain E0308`.
Original diagnostics will follow.
warning: function `a` is never used
--> src/main.rs:6:4
|
6 | fn a(argc: isize, argv: *const *const u8) -> isize {
| ^
|
= note: `#[warn(dead_code)]` on by default
warning: called `assert!` with `Result::is_ok`
--> src/main.rs:12:24
|
12 | '3' => assert!(panic::catch_unwind(|| {}).is_ok()),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `panic::catch_unwind(|| {}).unwrap()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_result_states
= note: requested on the command line with `-W clippy::assertions-on-result-states`
warning: called `assert!` with `Result::is_err`
--> src/main.rs:14:24
|
14 | '5' => assert!(Command::new("test").spawn().is_err()),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `Command::new("test").spawn().unwrap_err()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_result_states
warning: `clpy` (bin "clpy") generated 3 warnings (run `cargo fix --bin "clpy"` to apply 2 suggestions)
warning: `clpy` (bin "clpy" test) generated 3 warnings (3 duplicates)
Finished dev [unoptimized + debuginfo] target(s) in 0.68s
I expected to see this happen:
Version
rustc 1.67.0-nightly (c5d82ed7a 2022-11-19)
binary: rustc
commit-hash: c5d82ed7a4ad94a538bb87e5016e7d5ce0bd434b
commit-date: 2022-11-19
host: x86_64-unknown-linux-gnu
release: 1.67.0-nightly
LLVM version: 15.0.4
Additional Labels
No response
Metadata
Metadata
Assignees
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-false-positiveIssue: The lint was triggered on code it shouldn't haveIssue: The lint was triggered on code it shouldn't haveI-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