   LL|       |#![feature(coverage_attribute)]
   LL|       |//@ edition: 2024
   LL|       |
   LL|       |use core::assert_matches;
   LL|       |
   LL|      1|fn assert_a_plain(opt: Option<&str>) {
   LL|      1|    assert!(opt.is_some());
   LL|      1|    assert_eq!(opt, Some("true"));
   LL|      1|    assert_ne!(opt, None);
   LL|      1|    assert_matches!(opt, Some("true"));
   LL|      1|}
   LL|       |
   LL|      1|fn assert_b_message(opt: Option<&str>) {
   LL|      1|    assert!(opt.is_some(), "message");
   LL|      1|    assert_eq!(opt, Some("true"), "message");
   LL|      1|    assert_ne!(opt, None, "message");
   LL|      1|    assert_matches!(opt, Some("true"), "message");
   LL|      1|}
   LL|       |
   LL|      1|fn assert_c_format_inline(opt: Option<&str>, msg: &str) {
   LL|      1|    assert!(opt.is_some(), "message: {msg}");
   LL|      1|    assert_eq!(opt, Some("true"), "message: {msg}");
   LL|      1|    assert_ne!(opt, None, "message: {msg}");
   LL|      1|    assert_matches!(opt, Some("true"), "message: {msg}");
   LL|      1|}
   LL|       |
   LL|      1|fn assert_d_format_arg(opt: Option<&str>, msg: &str) {
   LL|      1|    assert!(opt.is_some(), "message: {}", msg);
   LL|      1|    assert_eq!(opt, Some("true"), "message: {}", msg);
   LL|      1|    assert_ne!(opt, None, "message: {}", msg);
   LL|      1|    assert_matches!(opt, Some("true"), "message: {}", msg);
   LL|      1|}
   LL|       |
   LL|       |#[coverage(off)]
   LL|       |fn main() {
   LL|       |    let opt = core::hint::black_box(Some("true"));
   LL|       |    assert_a_plain(opt);
   LL|       |    assert_b_message(opt);
   LL|       |    assert_c_format_inline(opt, "message");
   LL|       |    assert_d_format_arg(opt, "message");
   LL|       |}

