summaryrefslogtreecommitdiffstats
path: root/src/tools/rustfmt/tests/source/fn-param-attributes.rs
blob: 3407a3b2ef2e5d85a434f3503b0d12ca6c25af11 (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
// https://github.com/rust-lang/rustfmt/issues/3623

fn foo(#[cfg(something)] x: i32, y: i32) -> i32 {
    x + y
}

fn foo_b(#[cfg(something)]x: i32, y: i32) -> i32 {
    x + y
}

fn add(#[cfg(something)]#[deny(C)]  x: i32, y: i32) -> i32 {
    x + y
}

struct NamedSelfRefStruct {}
impl NamedSelfRefStruct {
    fn foo(
#[cfg(something)]  self: &Self,
    ) {}
}

struct MutStruct {}
impl MutStruct {
    fn foo(
        #[cfg(foo)]&mut self,#[deny(C)] b: i32,
    ) {}
}

fn main() {
    let c = |
        #[allow(C)]a: u32,
        #[cfg(something)] b: i32,
        #[cfg_attr(something, cfg(nothing))]#[deny(C)] c: i32,
    | {};
    let _ = c(1, 2);
}

pub fn bar(
    /// bar
#[test] a: u32,
    /// Bar
            #[must_use]
/// Baz
    #[no_mangle] b: i32,
) {}


fn abc(
    #[foo]
    #[bar] param: u32,
) {
    // ...
}

fn really_really_really_loooooooooooooooooooong(#[cfg(some_even_longer_config_feature_that_keeps_going_and_going_and_going_forever_and_ever_and_ever_on_and_on)] b: i32) {
    // ...
}