about summary refs log tree commit diff
path: root/tests/ui/lint/non-local-defs/local.rs
blob: f7ecd68f59e9081730be85641b01c9c820dae797 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//@ check-pass
//@ edition:2021

use std::fmt::Debug;

trait GlobalTrait {}

fn main() {
    struct InsideMain;

    impl InsideMain {
        fn foo() {}
    }

    impl GlobalTrait for InsideMain {}

    impl Debug for InsideMain {
        fn fmt(&self, _f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
            todo!()
        }
    }

    impl PartialEq<()> for InsideMain {
        fn eq(&self, _: &()) -> bool {
            todo!()
        }
    }
}

fn dyn_weirdness() {
    trait LocalTrait {}
    impl dyn LocalTrait {}
    impl GlobalTrait for dyn LocalTrait {}
}

struct Test;
mod do_not_lint_mod {
    pub trait Tait {}

    impl super::Test {
        fn hugo() {}
    }

    impl Tait for super::Test {}
}

fn bitflags() {
    struct Flags;

    const _: () = {
        impl Flags {}
    };
}

fn bitflags_internal() {
    const _: () = {
        struct InternalFlags;
        impl InternalFlags {}
    };
}