about summary refs log tree commit diff
path: root/tests/ui/attributes/key-value-expansion-scope.rs
blob: b84fe4873c37152c2a20f7305e1e1a3fa6471253 (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
61
62
63
64
#![doc = in_root!()] // FIXME, this is a bug
#![doc = in_mod!()] //~ ERROR cannot find macro `in_mod` in this scope
#![doc = in_mod_escape!()] // FIXME, this is a bug
#![doc = in_block!()] //~ ERROR cannot find macro `in_block` in this scope

#[doc = in_root!()] //~ ERROR cannot find macro `in_root` in this scope
#[doc = in_mod!()] //~ ERROR cannot find macro `in_mod` in this scope
#[doc = in_mod_escape!()] //~ ERROR cannot find macro `in_mod_escape` in this scope
#[doc = in_block!()] //~ ERROR cannot find macro `in_block` in this scope
fn before() {
    #![doc = in_root!()] //~ ERROR cannot find macro `in_root` in this scope
    #![doc = in_mod!()] //~ ERROR cannot find macro `in_mod` in this scope
    #![doc = in_mod_escape!()] //~ ERROR cannot find macro `in_mod_escape` in this scope
    #![doc = in_block!()] //~ ERROR cannot find macro `in_block` in this scope
}

macro_rules! in_root { () => { "" } }

mod macros_stay {
    #![doc = in_mod!()] // FIXME, this is a bug

    macro_rules! in_mod { () => { "" } }

    #[doc = in_mod!()] // OK
    fn f() {
        #![doc = in_mod!()] // OK
    }
}

#[macro_use]
mod macros_escape {
    #![doc = in_mod_escape!()] // FIXME, this is a bug

    macro_rules! in_mod_escape { () => { "" } }

    #[doc = in_mod_escape!()] // OK
    fn f() {
        #![doc = in_mod_escape!()] // OK
    }
}

fn block() {
    #![doc = in_block!()]  //~ ERROR cannot find macro `in_block` in this scope

    macro_rules! in_block { () => { "" } }

    #[doc = in_block!()] // OK
    fn f() {
        #![doc = in_block!()] // OK
    }
}

#[doc = in_root!()] // OK
#[doc = in_mod!()] //~ ERROR cannot find macro `in_mod` in this scope
#[doc = in_mod_escape!()] // OK
#[doc = in_block!()] //~ ERROR cannot find macro `in_block` in this scope
fn after() {
    #![doc = in_root!()] // OK
    #![doc = in_mod!()] //~ ERROR cannot find macro `in_mod` in this scope
    #![doc = in_mod_escape!()] // OK
    #![doc = in_block!()] //~ ERROR cannot find macro `in_block` in this scope
}

fn main() {}