about summary refs log tree commit diff
path: root/tests/ui/resolve/non-macro-attrs-accepted.rs
blob: 76a04b2e83749a16c728f5b00de174874282d4a4 (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
//! Check that certain positions (listed below) permit *non-macro* attributes.
//!
//! - Enum variants
//! - Struct fields
//! - Field in a struct pattern
//! - Match arm
//! - Field in struct initialization expression

//@ check-pass

enum FooEnum {
    #[rustfmt::skip]
    Bar(i32),
}

struct FooStruct {
    #[rustfmt::skip]
    bar: i32,
}

fn main() {
    let foo_enum_bar = FooEnum::Bar(1);
    match foo_enum_bar {
        FooEnum::Bar(x) => {}
        _ => {}
    }

    let foo_struct = FooStruct { bar: 1 };
    match foo_struct {
        FooStruct {
            #[rustfmt::skip] bar
        } => {}
    }

    match 1 {
        0 => {}
        #[rustfmt::skip]
        _ => {}
    }

    let _another_foo_struct = FooStruct {
        #[rustfmt::skip]
        bar: 1,
    };
}