2018-05-03 17:43:28 -05:00
|
|
|
// 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!)
|
|
|
|
//
|
2020-10-24 19:22:53 -05:00
|
|
|
// check-pass
|
2018-05-03 17:43:28 -05:00
|
|
|
|
2022-05-10 14:15:30 -05:00
|
|
|
// Use forbid to verify that `automatically_derived` is handled correctly.
|
|
|
|
#![forbid(single_use_lifetimes)]
|
2018-05-03 17:43:28 -05:00
|
|
|
#![allow(dead_code)]
|
|
|
|
#![allow(unused_variables)]
|
|
|
|
|
|
|
|
struct Foo<'f> {
|
2020-10-24 19:22:53 -05:00
|
|
|
data: &'f u32,
|
2017-11-23 07:05:58 -06:00
|
|
|
}
|
|
|
|
|
2018-05-03 17:43:28 -05:00
|
|
|
enum Bar<'f> {
|
2020-10-24 19:22:53 -05:00
|
|
|
Data(&'f u32),
|
2017-11-23 07:05:58 -06:00
|
|
|
}
|
|
|
|
|
2020-10-24 19:22:53 -05:00
|
|
|
trait Baz<'f> {}
|
2018-05-03 17:43:28 -05:00
|
|
|
|
2019-06-14 01:16:47 -05:00
|
|
|
// `Derive`d impls shouldn't trigger a warning, either (Issue #53738).
|
|
|
|
#[derive(Debug)]
|
|
|
|
struct Quux<'a> {
|
|
|
|
priors: &'a u32,
|
|
|
|
}
|
|
|
|
|
2020-10-24 19:22:53 -05:00
|
|
|
fn main() {}
|