]> git.lizzy.rs Git - rust.git/blob - tests/ui/ref_option_ref.rs
clippy_lint: Add test cases
[rust.git] / tests / ui / ref_option_ref.rs
1 #![allow(unused)]
2 #![warn(clippy::ref_option_ref)]
3
4 static THRESHOLD: i32 = 10;
5 static REF_THRESHOLD: &Option<&i32> = &Some(&THRESHOLD);
6 const CONST_THRESHOLD: &i32 = &10;
7 const REF_CONST: &Option<&i32> = &Some(&CONST_THRESHOLD);
8
9 type RefOptRefU32<'a> = &'a Option<&'a u32>;
10 type RefOptRef<'a, T> = &'a Option<&'a T>;
11
12 fn foo(data: &Option<&u32>) {}
13
14 fn bar(data: &u32) -> &Option<&u32> {
15     &None
16 }
17
18 struct StructRef<'a> {
19     data: &'a Option<&'a u32>,
20 }
21
22 struct StructTupleRef<'a>(u32, &'a Option<&'a u32>);
23
24 enum EnumRef<'a> {
25     Variant1(u32),
26     Variant2(&'a Option<&'a u32>),
27 }
28
29 trait RefOptTrait {
30     type A;
31     fn foo(&self, _: Self::A);
32 }
33
34 impl RefOptTrait for u32 {
35     type A = &'static Option<&'static Self>;
36
37     fn foo(&self, _: Self::A) {}
38 }
39
40 fn main() {
41     let x: &Option<&u32> = &None;
42 }