// run-rustfix
#![warn(clippy::expect_fun_call)]
+#![allow(clippy::to_string_in_format_args)]
/// Checks implementation of the `EXPECT_FUN_CALL` lint
+macro_rules! one {
+ () => {
+ 1
+ };
+}
+
fn main() {
struct Foo;
let with_none_and_as_str: Option<i32> = None;
with_none_and_as_str.unwrap_or_else(|| panic!("Error {}: fake error", error_code));
+ let with_none_and_format_with_macro: Option<i32> = None;
+ with_none_and_format_with_macro.unwrap_or_else(|| panic!("Error {}: fake error", one!()));
+
let with_ok: Result<(), ()> = Ok(());
with_ok.expect("error");
"foo"
}
- Some("foo").unwrap_or_else(|| { panic!(get_string()) });
- Some("foo").unwrap_or_else(|| { panic!(get_string()) });
- Some("foo").unwrap_or_else(|| { panic!(get_string()) });
+ Some("foo").unwrap_or_else(|| { panic!("{}", get_string()) });
+ Some("foo").unwrap_or_else(|| { panic!("{}", get_string()) });
+ Some("foo").unwrap_or_else(|| { panic!("{}", get_string()) });
- Some("foo").unwrap_or_else(|| { panic!(get_static_str()) });
- Some("foo").unwrap_or_else(|| { panic!(get_non_static_str(&0).to_string()) });
+ Some("foo").unwrap_or_else(|| { panic!("{}", get_static_str()) });
+ Some("foo").unwrap_or_else(|| { panic!("{}", get_non_static_str(&0).to_string()) });
+ }
+
+ //Issue #3839
+ Some(true).unwrap_or_else(|| panic!("key {}, {}", 1, 2));
+
+ //Issue #4912 - the receiver is a &Option
+ {
+ let opt = Some(1);
+ let opt_ref = &opt;
+ opt_ref.unwrap_or_else(|| panic!("{:?}", opt_ref));
}
}