rust/tests/ui/ref_option/ref_option.all.fixed
2024-09-28 11:57:34 -04:00

63 lines
1.6 KiB
Rust

//@revisions: private all
//@[private] rustc-env:CLIPPY_CONF_DIR=tests/ui/ref_option/private
//@[all] rustc-env:CLIPPY_CONF_DIR=tests/ui/ref_option/all
#![allow(unused, clippy::needless_lifetimes, clippy::borrowed_box)]
#![warn(clippy::ref_option)]
fn opt_u8(a: Option<&u8>) {}
fn opt_gen<T>(a: Option<&T>) {}
fn opt_string(a: std::option::Option<&String>) {}
fn ret_string<'a>(p: &'a str) -> Option<&'a u8> {
panic!()
}
fn ret_string_static() -> Option<&'static u8> {
panic!()
}
fn mult_string(a: Option<&String>, b: Option<&Vec<u8>>) {}
fn ret_box<'a>() -> Option<&'a Box<u8>> {
panic!()
}
pub fn pub_opt_string(a: Option<&String>) {}
pub fn pub_mult_string(a: Option<&String>, b: Option<&Vec<u8>>) {}
pub trait PubTrait {
fn pub_trait_opt(&self, a: Option<&Vec<u8>>);
fn pub_trait_ret(&self) -> Option<&Vec<u8>>;
}
trait PrivateTrait {
fn trait_opt(&self, a: Option<&String>);
fn trait_ret(&self) -> Option<&String>;
}
pub struct PubStruct;
impl PubStruct {
pub fn pub_opt_params(&self, a: Option<&()>) {}
pub fn pub_opt_ret(&self) -> Option<&String> {
panic!()
}
fn private_opt_params(&self, a: Option<&()>) {}
fn private_opt_ret(&self) -> Option<&String> {
panic!()
}
}
// valid, don't change
fn mut_u8(a: &mut Option<u8>) {}
pub fn pub_mut_u8(a: &mut Option<String>) {}
// might be good to catch in the future
fn mut_u8_ref(a: &mut &Option<u8>) {}
pub fn pub_mut_u8_ref(a: &mut &Option<String>) {}
fn lambdas() {
// Not handled for now, not sure if we should
let x = |a: &Option<String>| {};
let x = |a: &Option<String>| -> &Option<String> { panic!() };
}
fn main() {}