#![allow(clippy::assertions_on_constants, clippy::eq_op, clippy::let_unit_value)] #![feature(inline_const)] #![warn(clippy::unimplemented, clippy::unreachable, clippy::todo, clippy::panic)] extern crate core; const _: () = { if 1 == 0 { panic!("A balanced diet means a cupcake in each hand"); } }; fn inline_const() { let _ = const { if 1 == 0 { panic!("When nothing goes right, go left") } }; } fn panic() { let a = 2; panic!(); //~^ ERROR: `panic` should not be present in production code //~| NOTE: `-D clippy::panic` implied by `-D warnings` panic!("message"); //~^ ERROR: `panic` should not be present in production code panic!("{} {}", "panic with", "multiple arguments"); //~^ ERROR: `panic` should not be present in production code let b = a + 2; } fn todo() { let a = 2; todo!(); //~^ ERROR: `todo` should not be present in production code //~| NOTE: `-D clippy::todo` implied by `-D warnings` todo!("message"); //~^ ERROR: `todo` should not be present in production code todo!("{} {}", "panic with", "multiple arguments"); //~^ ERROR: `todo` should not be present in production code let b = a + 2; } fn unimplemented() { let a = 2; unimplemented!(); //~^ ERROR: `unimplemented` should not be present in production code //~| NOTE: `-D clippy::unimplemented` implied by `-D warnings` unimplemented!("message"); //~^ ERROR: `unimplemented` should not be present in production code unimplemented!("{} {}", "panic with", "multiple arguments"); //~^ ERROR: `unimplemented` should not be present in production code let b = a + 2; } fn unreachable() { let a = 2; unreachable!(); //~^ ERROR: usage of the `unreachable!` macro //~| NOTE: `-D clippy::unreachable` implied by `-D warnings` unreachable!("message"); //~^ ERROR: usage of the `unreachable!` macro unreachable!("{} {}", "panic with", "multiple arguments"); //~^ ERROR: usage of the `unreachable!` macro let b = a + 2; } fn core_versions() { use core::{panic, todo, unimplemented, unreachable}; panic!(); //~^ ERROR: `panic` should not be present in production code todo!(); //~^ ERROR: `todo` should not be present in production code unimplemented!(); //~^ ERROR: `unimplemented` should not be present in production code unreachable!(); //~^ ERROR: usage of the `unreachable!` macro } fn assert() { assert!(true); assert_eq!(true, true); assert_ne!(true, false); } fn assert_msg() { assert!(true, "this should not panic"); assert_eq!(true, true, "this should not panic"); assert_ne!(true, false, "this should not panic"); } fn debug_assert() { debug_assert!(true); debug_assert_eq!(true, true); debug_assert_ne!(true, false); } fn debug_assert_msg() { debug_assert!(true, "test"); debug_assert_eq!(true, true, "test"); debug_assert_ne!(true, false, "test"); } fn main() { panic(); todo(); unimplemented(); unreachable(); core_versions(); assert(); assert_msg(); debug_assert(); debug_assert_msg(); }