mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 02:57:37 +00:00
Remove debug_assert
from panic_in_result_fn
This commit is contained in:
parent
f7c2c44e76
commit
43e6c656ba
@ -61,9 +61,6 @@ fn lint_impl_body<'tcx>(cx: &LateContext<'tcx>, impl_span: Span, body: &'tcx hir
|
||||
"assert",
|
||||
"assert_eq",
|
||||
"assert_ne",
|
||||
"debug_assert",
|
||||
"debug_assert_eq",
|
||||
"debug_assert_ne",
|
||||
],
|
||||
body,
|
||||
);
|
||||
|
@ -1,43 +1,45 @@
|
||||
#![warn(clippy::panic_in_result_fn)]
|
||||
#![allow(clippy::unnecessary_wraps)]
|
||||
|
||||
// debug_assert should never trigger the `panic_in_result_fn` lint
|
||||
|
||||
struct A;
|
||||
|
||||
impl A {
|
||||
fn result_with_debug_assert_with_message(x: i32) -> Result<bool, String> // should emit lint
|
||||
fn result_with_debug_assert_with_message(x: i32) -> Result<bool, String>
|
||||
{
|
||||
debug_assert!(x == 5, "wrong argument");
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
fn result_with_debug_assert_eq(x: i32) -> Result<bool, String> // should emit lint
|
||||
fn result_with_debug_assert_eq(x: i32) -> Result<bool, String>
|
||||
{
|
||||
debug_assert_eq!(x, 5);
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
fn result_with_debug_assert_ne(x: i32) -> Result<bool, String> // should emit lint
|
||||
fn result_with_debug_assert_ne(x: i32) -> Result<bool, String>
|
||||
{
|
||||
debug_assert_ne!(x, 1);
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
fn other_with_debug_assert_with_message(x: i32) // should not emit lint
|
||||
fn other_with_debug_assert_with_message(x: i32)
|
||||
{
|
||||
debug_assert!(x == 5, "wrong argument");
|
||||
}
|
||||
|
||||
fn other_with_debug_assert_eq(x: i32) // should not emit lint
|
||||
fn other_with_debug_assert_eq(x: i32)
|
||||
{
|
||||
debug_assert_eq!(x, 5);
|
||||
}
|
||||
|
||||
fn other_with_debug_assert_ne(x: i32) // should not emit lint
|
||||
fn other_with_debug_assert_ne(x: i32)
|
||||
{
|
||||
debug_assert_ne!(x, 1);
|
||||
}
|
||||
|
||||
fn result_without_banned_functions() -> Result<bool, String> // should not emit lint
|
||||
fn result_without_banned_functions() -> Result<bool, String>
|
||||
{
|
||||
let debug_assert = "debug_assert!";
|
||||
println!("No {}", debug_assert);
|
||||
|
@ -1,57 +0,0 @@
|
||||
error: used `unimplemented!()`, `unreachable!()`, `todo!()`, `panic!()` or assertion in a function that returns `Result`
|
||||
--> $DIR/panic_in_result_fn_debug_assertions.rs:7:5
|
||||
|
|
||||
LL | / fn result_with_debug_assert_with_message(x: i32) -> Result<bool, String> // should emit lint
|
||||
LL | | {
|
||||
LL | | debug_assert!(x == 5, "wrong argument");
|
||||
LL | | Ok(true)
|
||||
LL | | }
|
||||
| |_____^
|
||||
|
|
||||
= note: `-D clippy::panic-in-result-fn` implied by `-D warnings`
|
||||
= help: `unimplemented!()`, `unreachable!()`, `todo!()`, `panic!()` or assertions should not be used in a function that returns `Result` as `Result` is expected to return an error instead of crashing
|
||||
note: return Err() instead of panicking
|
||||
--> $DIR/panic_in_result_fn_debug_assertions.rs:9:9
|
||||
|
|
||||
LL | debug_assert!(x == 5, "wrong argument");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: used `unimplemented!()`, `unreachable!()`, `todo!()`, `panic!()` or assertion in a function that returns `Result`
|
||||
--> $DIR/panic_in_result_fn_debug_assertions.rs:13:5
|
||||
|
|
||||
LL | / fn result_with_debug_assert_eq(x: i32) -> Result<bool, String> // should emit lint
|
||||
LL | | {
|
||||
LL | | debug_assert_eq!(x, 5);
|
||||
LL | | Ok(true)
|
||||
LL | | }
|
||||
| |_____^
|
||||
|
|
||||
= help: `unimplemented!()`, `unreachable!()`, `todo!()`, `panic!()` or assertions should not be used in a function that returns `Result` as `Result` is expected to return an error instead of crashing
|
||||
note: return Err() instead of panicking
|
||||
--> $DIR/panic_in_result_fn_debug_assertions.rs:15:9
|
||||
|
|
||||
LL | debug_assert_eq!(x, 5);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: used `unimplemented!()`, `unreachable!()`, `todo!()`, `panic!()` or assertion in a function that returns `Result`
|
||||
--> $DIR/panic_in_result_fn_debug_assertions.rs:19:5
|
||||
|
|
||||
LL | / fn result_with_debug_assert_ne(x: i32) -> Result<bool, String> // should emit lint
|
||||
LL | | {
|
||||
LL | | debug_assert_ne!(x, 1);
|
||||
LL | | Ok(true)
|
||||
LL | | }
|
||||
| |_____^
|
||||
|
|
||||
= help: `unimplemented!()`, `unreachable!()`, `todo!()`, `panic!()` or assertions should not be used in a function that returns `Result` as `Result` is expected to return an error instead of crashing
|
||||
note: return Err() instead of panicking
|
||||
--> $DIR/panic_in_result_fn_debug_assertions.rs:21:9
|
||||
|
|
||||
LL | debug_assert_ne!(x, 1);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
Loading…
Reference in New Issue
Block a user