summaryrefslogtreecommitdiffstats
path: root/tests/rustdoc/doc-cfg-traits.rs
blob: 13407b2c791fe2a16ea6cd8188373e9470e7a03e (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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#![crate_name = "myrmecophagous"]
#![feature(doc_cfg, associated_type_defaults)]

// @has 'myrmecophagous/index.html'
// @count   - '//*[@class="stab portability"]' 2
// @matches - '//*[@class="stab portability"]' '^jurisconsult$'
// @matches - '//*[@class="stab portability"]' '^quarter$'

pub trait Lea {}

// @has 'myrmecophagous/trait.Vortoscope.html'
// @count   - '//*[@class="stab portability"]' 6
// @matches - '//*[@class="stab portability"]' 'crate feature zibib'
// @matches - '//*[@class="stab portability"]' 'crate feature poriform'
// @matches - '//*[@class="stab portability"]' 'crate feature ethopoeia'
// @matches - '//*[@class="stab portability"]' 'crate feature lea'
// @matches - '//*[@class="stab portability"]' 'crate feature unit'
// @matches - '//*[@class="stab portability"]' 'crate feature quarter'
pub trait Vortoscope {
    type Batology = ();

    #[doc(cfg(feature = "zibib"))]
    type Zibib = ();

    const YAHRZEIT: () = ();

    #[doc(cfg(feature = "poriform"))]
    const PORIFORM: () = ();

    fn javanais() {}

    #[doc(cfg(feature = "ethopoeia"))]
    fn ethopoeia() {}
}

#[doc(cfg(feature = "lea"))]
impl<T: Lea> Vortoscope for T {}

#[doc(cfg(feature = "unit"))]
impl Vortoscope for () {}

// @has 'myrmecophagous/trait.Jurisconsult.html'
// @count   - '//*[@class="stab portability"]' 7
// @matches - '//*[@class="stab portability"]' 'crate feature jurisconsult'
// @matches - '//*[@class="stab portability"]' 'crate feature lithomancy'
// @matches - '//*[@class="stab portability"]' 'crate feature boodle'
// @matches - '//*[@class="stab portability"]' 'crate feature mistetch'
// @matches - '//*[@class="stab portability"]' 'crate feature lea'
// @matches - '//*[@class="stab portability"]' 'crate feature unit'
// @matches - '//*[@class="stab portability"]' 'crate feature quarter'
#[doc(cfg(feature = "jurisconsult"))]
pub trait Jurisconsult {
    type Urbanist = ();

    #[doc(cfg(feature = "lithomancy"))]
    type Lithomancy = ();

    const UNIFILAR: () = ();

    #[doc(cfg(feature = "boodle"))]
    const BOODLE: () = ();

    fn mersion() {}

    #[doc(cfg(feature = "mistetch"))]
    fn mistetch() {}
}

#[doc(cfg(feature = "lea"))]
impl<T: Lea> Jurisconsult for T {}

#[doc(cfg(feature = "unit"))]
impl Jurisconsult for () {}

// @has 'myrmecophagous/struct.Ultimogeniture.html'
// @count   - '//*[@class="stab portability"]' 8
//
// @matches - '//*[@class="stab portability"]' 'crate feature zibib'
// @matches - '//*[@class="stab portability"]' 'crate feature poriform'
// @matches - '//*[@class="stab portability"]' 'crate feature ethopoeia'
//
// @matches - '//*[@class="stab portability"]' 'crate feature jurisconsult'
// @matches - '//*[@class="stab portability"]' 'crate feature lithomancy'
// @matches - '//*[@class="stab portability"]' 'crate feature boodle'
// @matches - '//*[@class="stab portability"]' 'crate feature mistetch'
//
// @matches - '//*[@class="stab portability"]' 'crate feature copy'
#[derive(Clone)]
pub struct Ultimogeniture;

impl Vortoscope for Ultimogeniture {}

#[doc(cfg(feature = "jurisconsult"))]
impl Jurisconsult for Ultimogeniture {}

#[doc(cfg(feature = "copy"))]
impl Copy for Ultimogeniture {}

// @has 'myrmecophagous/struct.Quarter.html'
// @count   - '//*[@class="stab portability"]' 9
// @matches - '//*[@class="stab portability"]' 'crate feature quarter'
//
// @matches - '//*[@class="stab portability"]' 'crate feature zibib'
// @matches - '//*[@class="stab portability"]' 'crate feature poriform'
// @matches - '//*[@class="stab portability"]' 'crate feature ethopoeia'
//
// @matches - '//*[@class="stab portability"]' 'crate feature jurisconsult'
// @matches - '//*[@class="stab portability"]' 'crate feature lithomancy'
// @matches - '//*[@class="stab portability"]' 'crate feature boodle'
// @matches - '//*[@class="stab portability"]' 'crate feature mistetch'
//
// @matches - '//*[@class="stab portability"]' 'crate feature copy'
#[doc(cfg(feature = "quarter"))]
#[derive(Clone)]
pub struct Quarter;

#[doc(cfg(feature = "quarter"))]
impl Vortoscope for Quarter {}

#[doc(cfg(all(feature = "jurisconsult", feature = "quarter")))]
impl Jurisconsult for Quarter {}

#[doc(cfg(all(feature = "copy", feature = "quarter")))]
impl Copy for Quarter {}