summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/single_char_lifetime_names.rs
blob: 69c5b236f7cf8dea4d221d6c444cc7fcb12e058e (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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#![warn(clippy::single_char_lifetime_names)]
#![allow(clippy::let_unit_value)]

// Lifetimes should only be linted when they're introduced
struct DiagnosticCtx<'a, 'b>
where
    'a: 'b,
{
    _source: &'a str,
    _unit: &'b (),
}

// Only the lifetimes on the `impl`'s generics should be linted
impl<'a, 'b> DiagnosticCtx<'a, 'b> {
    fn new(source: &'a str, unit: &'b ()) -> DiagnosticCtx<'a, 'b> {
        Self {
            _source: source,
            _unit: unit,
        }
    }
}

// No lifetimes should be linted here
impl<'src, 'unit> DiagnosticCtx<'src, 'unit> {
    fn new_pass(source: &'src str, unit: &'unit ()) -> DiagnosticCtx<'src, 'unit> {
        Self {
            _source: source,
            _unit: unit,
        }
    }
}

// Only 'a should be linted here
fn split_once<'a>(base: &'a str, other: &'_ str) -> (&'a str, Option<&'a str>) {
    base.split_once(other)
        .map(|(left, right)| (left, Some(right)))
        .unwrap_or((base, None))
}

fn main() {
    let src = "loop {}";
    let unit = ();
    DiagnosticCtx::new(src, &unit);
}