rust-clippy/tests/ui/result_unit_error.rs

62 lines
1.3 KiB
Rust
Raw Normal View History

#![warn(clippy::result_unit_err)]
2020-10-11 11:27:20 +00:00
pub fn returns_unit_error() -> Result<u32, ()> {
//~^ ERROR: this returns a `Result<_, ()>`
2020-10-11 11:27:20 +00:00
Err(())
}
fn private_unit_errors() -> Result<String, ()> {
Err(())
}
pub trait HasUnitError {
fn get_that_error(&self) -> Result<bool, ()>;
//~^ ERROR: this returns a `Result<_, ()>`
2020-10-11 11:27:20 +00:00
fn get_this_one_too(&self) -> Result<bool, ()> {
//~^ ERROR: this returns a `Result<_, ()>`
2020-10-11 11:27:20 +00:00
Err(())
}
}
impl HasUnitError for () {
fn get_that_error(&self) -> Result<bool, ()> {
Ok(true)
}
}
trait PrivateUnitError {
fn no_problem(&self) -> Result<usize, ()>;
}
pub struct UnitErrorHolder;
impl UnitErrorHolder {
pub fn unit_error(&self) -> Result<usize, ()> {
//~^ ERROR: this returns a `Result<_, ()>`
2020-10-11 11:27:20 +00:00
Ok(0)
}
}
// https://github.com/rust-lang/rust-clippy/issues/6546
pub mod issue_6546 {
type ResInv<A, B> = Result<B, A>;
pub fn should_lint() -> ResInv<(), usize> {
//~^ ERROR: this returns a `Result<_, ()>`
Ok(0)
}
pub fn should_not_lint() -> ResInv<usize, ()> {
Ok(())
}
type MyRes<A, B> = Result<(A, B), Box<dyn std::error::Error>>;
pub fn should_not_lint2(x: i32) -> MyRes<i32, ()> {
Ok((x, ()))
}
}
2020-10-11 11:27:20 +00:00
fn main() {}