summaryrefslogtreecommitdiffstats
path: root/src/test/ui/single-use-lifetime/one-use-in-struct.rs
blob: 9cad942e7a2e721ea83b64bcbc1dc40bbca408f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Test that we do not warn for named lifetimes in structs,
// even when they are only used once (since to not use a named
// lifetime is illegal!)
//
// check-pass

// Use forbid to verify that `automatically_derived` is handled correctly.
#![forbid(single_use_lifetimes)]
#![allow(dead_code)]
#![allow(unused_variables)]

struct Foo<'f> {
    data: &'f u32,
}

enum Bar<'f> {
    Data(&'f u32),
}

trait Baz<'f> {}

// `Derive`d impls shouldn't trigger a warning, either (Issue #53738).
#[derive(Debug)]
struct Quux<'a> {
    priors: &'a u32,
}

fn main() {}