2020-10-13 20:13:54 +00:00
|
|
|
#![allow(unused)]
|
2020-10-12 21:58:59 +00:00
|
|
|
#![warn(clippy::ref_option_ref)]
|
|
|
|
|
2020-10-26 21:50:13 +00:00
|
|
|
// This lint is not tagged as run-rustfix because automatically
|
|
|
|
// changing the type of a variable would also means changing
|
|
|
|
// all usages of this variable to match and This is not handled
|
|
|
|
// by this lint.
|
|
|
|
|
2020-10-15 19:56:56 +00:00
|
|
|
static THRESHOLD: i32 = 10;
|
|
|
|
static REF_THRESHOLD: &Option<&i32> = &Some(&THRESHOLD);
|
|
|
|
const CONST_THRESHOLD: &i32 = &10;
|
|
|
|
const REF_CONST: &Option<&i32> = &Some(&CONST_THRESHOLD);
|
|
|
|
|
|
|
|
type RefOptRefU32<'a> = &'a Option<&'a u32>;
|
|
|
|
type RefOptRef<'a, T> = &'a Option<&'a T>;
|
|
|
|
|
|
|
|
fn foo(data: &Option<&u32>) {}
|
|
|
|
|
|
|
|
fn bar(data: &u32) -> &Option<&u32> {
|
|
|
|
&None
|
|
|
|
}
|
|
|
|
|
|
|
|
struct StructRef<'a> {
|
|
|
|
data: &'a Option<&'a u32>,
|
|
|
|
}
|
|
|
|
|
|
|
|
struct StructTupleRef<'a>(u32, &'a Option<&'a u32>);
|
|
|
|
|
|
|
|
enum EnumRef<'a> {
|
|
|
|
Variant1(u32),
|
|
|
|
Variant2(&'a Option<&'a u32>),
|
|
|
|
}
|
|
|
|
|
|
|
|
trait RefOptTrait {
|
|
|
|
type A;
|
|
|
|
fn foo(&self, _: Self::A);
|
|
|
|
}
|
|
|
|
|
|
|
|
impl RefOptTrait for u32 {
|
|
|
|
type A = &'static Option<&'static Self>;
|
|
|
|
|
|
|
|
fn foo(&self, _: Self::A) {}
|
|
|
|
}
|
2020-10-13 20:13:54 +00:00
|
|
|
|
2020-10-12 21:58:59 +00:00
|
|
|
fn main() {
|
|
|
|
let x: &Option<&u32> = &None;
|
|
|
|
}
|