error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:96:5
   |
LL |     assert_eq!("a".is_empty(), false);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `-D clippy::bool-assert-comparison` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::bool_assert_comparison)]`
help: replace it with `assert!(..)`
   |
LL -     assert_eq!("a".is_empty(), false);
LL +     assert!(!"a".is_empty());
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:98:5
   |
LL |     assert_eq!("".is_empty(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!("".is_empty(), true);
LL +     assert!("".is_empty());
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:100:5
   |
LL |     assert_eq!(true, "".is_empty());
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!(true, "".is_empty());
LL +     assert!("".is_empty());
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:106:5
   |
LL |     assert_eq!(b, true);
   |     ^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!(b, true);
LL +     assert!(!!b);
   |

error: used `assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:110:5
   |
LL |     assert_ne!("a".is_empty(), false);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_ne!("a".is_empty(), false);
LL +     assert!("a".is_empty());
   |

error: used `assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:112:5
   |
LL |     assert_ne!("".is_empty(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_ne!("".is_empty(), true);
LL +     assert!(!"".is_empty());
   |

error: used `assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:114:5
   |
LL |     assert_ne!(true, "".is_empty());
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_ne!(true, "".is_empty());
LL +     assert!(!"".is_empty());
   |

error: used `assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:120:5
   |
LL |     assert_ne!(b, true);
   |     ^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_ne!(b, true);
LL +     assert!(!b);
   |

error: used `debug_assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:124:5
   |
LL |     debug_assert_eq!("a".is_empty(), false);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_eq!("a".is_empty(), false);
LL +     debug_assert!(!"a".is_empty());
   |

error: used `debug_assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:126:5
   |
LL |     debug_assert_eq!("".is_empty(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_eq!("".is_empty(), true);
LL +     debug_assert!("".is_empty());
   |

error: used `debug_assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:128:5
   |
LL |     debug_assert_eq!(true, "".is_empty());
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_eq!(true, "".is_empty());
LL +     debug_assert!("".is_empty());
   |

error: used `debug_assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:134:5
   |
LL |     debug_assert_eq!(b, true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_eq!(b, true);
LL +     debug_assert!(!!b);
   |

error: used `debug_assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:138:5
   |
LL |     debug_assert_ne!("a".is_empty(), false);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_ne!("a".is_empty(), false);
LL +     debug_assert!("a".is_empty());
   |

error: used `debug_assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:140:5
   |
LL |     debug_assert_ne!("".is_empty(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_ne!("".is_empty(), true);
LL +     debug_assert!(!"".is_empty());
   |

error: used `debug_assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:142:5
   |
LL |     debug_assert_ne!(true, "".is_empty());
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_ne!(true, "".is_empty());
LL +     debug_assert!(!"".is_empty());
   |

error: used `debug_assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:148:5
   |
LL |     debug_assert_ne!(b, true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_ne!(b, true);
LL +     debug_assert!(!b);
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:154:5
   |
LL |     assert_eq!("a".is_empty(), false, "tadam {}", 1);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!("a".is_empty(), false, "tadam {}", 1);
LL +     assert!(!"a".is_empty(), "tadam {}", 1);
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:156:5
   |
LL |     assert_eq!("a".is_empty(), false, "tadam {}", true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!("a".is_empty(), false, "tadam {}", true);
LL +     assert!(!"a".is_empty(), "tadam {}", true);
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:158:5
   |
LL |     assert_eq!(false, "a".is_empty(), "tadam {}", true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!(false, "a".is_empty(), "tadam {}", true);
LL +     assert!(!"a".is_empty(), "tadam {}", true);
   |

error: used `debug_assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:164:5
   |
LL |     debug_assert_eq!("a".is_empty(), false, "tadam {}", 1);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_eq!("a".is_empty(), false, "tadam {}", 1);
LL +     debug_assert!(!"a".is_empty(), "tadam {}", 1);
   |

error: used `debug_assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:166:5
   |
LL |     debug_assert_eq!("a".is_empty(), false, "tadam {}", true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_eq!("a".is_empty(), false, "tadam {}", true);
LL +     debug_assert!(!"a".is_empty(), "tadam {}", true);
   |

error: used `debug_assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:168:5
   |
LL |     debug_assert_eq!(false, "a".is_empty(), "tadam {}", true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_eq!(false, "a".is_empty(), "tadam {}", true);
LL +     debug_assert!(!"a".is_empty(), "tadam {}", true);
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:172:5
   |
LL |     assert_eq!(a!(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!(a!(), true);
LL +     assert!(a!());
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:174:5
   |
LL |     assert_eq!(true, b!());
   |     ^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!(true, b!());
LL +     assert!(b!());
   |

error: used `debug_assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:179:5
   |
LL |     renamed!(b, true);
   |     ^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     renamed!(b, true);
LL +     debug_assert!(!!b);
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:194:5
   |
LL |     assert_eq!("".is_empty(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!("".is_empty(), true);
LL +     assert!("".is_empty());
   |

error: used `assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:196:5
   |
LL |     assert_ne!("".is_empty(), false);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_ne!("".is_empty(), false);
LL +     assert!("".is_empty());
   |

error: used `assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:198:5
   |
LL |     assert_ne!("requires negation".is_empty(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_ne!("requires negation".is_empty(), true);
LL +     assert!(!"requires negation".is_empty());
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:200:5
   |
LL |     assert_eq!("requires negation".is_empty(), false);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!("requires negation".is_empty(), false);
LL +     assert!(!"requires negation".is_empty());
   |

error: used `debug_assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:203:5
   |
LL |     debug_assert_eq!("".is_empty(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_eq!("".is_empty(), true);
LL +     debug_assert!("".is_empty());
   |

error: used `debug_assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:205:5
   |
LL |     debug_assert_ne!("".is_empty(), false);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_ne!("".is_empty(), false);
LL +     debug_assert!("".is_empty());
   |

error: used `debug_assert_ne!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:207:5
   |
LL |     debug_assert_ne!("requires negation".is_empty(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_ne!("requires negation".is_empty(), true);
LL +     debug_assert!(!"requires negation".is_empty());
   |

error: used `debug_assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:209:5
   |
LL |     debug_assert_eq!("requires negation".is_empty(), false);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `debug_assert!(..)`
   |
LL -     debug_assert_eq!("requires negation".is_empty(), false);
LL +     debug_assert!(!"requires negation".is_empty());
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:211:5
   |
LL |     assert_eq!(!b, true);
   |     ^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!(!b, true);
LL +     assert!(!b);
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:213:5
   |
LL |     assert_eq!(!b, false);
   |     ^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!(!b, false);
LL +     assert!(!(!b));
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:215:5
   |
LL |     assert_eq!(b + b, true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!(b + b, true);
LL +     assert!(!!(b + b));
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:217:5
   |
LL |     assert_eq!(b + b, false);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!(b + b, false);
LL +     assert!(!(b + b));
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:228:5
   |
LL |     assert_eq!(is_empty!("a"), false);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!(is_empty!("a"), false);
LL +     assert!(!is_empty!("a"));
   |

error: used `assert_eq!` with a literal bool
  --> tests/ui/bool_assert_comparison.rs:230:5
   |
LL |     assert_eq!(is_empty!(""), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: replace it with `assert!(..)`
   |
LL -     assert_eq!(is_empty!(""), true);
LL +     assert!(is_empty!(""));
   |

error: aborting due to 39 previous errors

