summaryrefslogtreecommitdiff
path: root/tests/rustdoc/stability.rs
blob: de855b43ba53862ddc0cacf3214fa27982397346 (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
#![feature(staged_api)]

#![stable(feature = "rust1", since = "1.0.0")]

//@ has stability/index.html
//@ has - '//ul[@class="item-table"]/li[1]//a' AaStable
//@ has - '//ul[@class="item-table"]/li[2]//a' ZzStable
//@ has - '//ul[@class="item-table"]/li[3]//a' Unstable

#[stable(feature = "rust2", since = "2.2.2")]
pub struct AaStable;

#[unstable(feature = "test", issue = "none")]
pub struct Unstable {
    //@ has stability/struct.Unstable.html \
    //      '//span[@class="item-info"]//div[@class="stab unstable"]' \
    //      'This is a nightly-only experimental API'
    //@ count stability/struct.Unstable.html '//span[@class="stab unstable"]' 0
    pub foo: u32,
    pub bar: u32,
}

#[stable(feature = "rust2", since = "2.2.2")]
pub struct ZzStable;

#[unstable(feature = "unstable", issue = "none")]
pub mod unstable {
    //@ !hasraw stability/unstable/struct.Foo.html '//span[@class="since"]'
    //@ has - '//div[@class="stab unstable"]' 'experimental'
    #[stable(feature = "rust1", since = "1.0.0")]
    pub struct Foo;
}

#[stable(feature = "rust2", since = "2.2.2")]
pub mod stable_later {
    //@ has stability/stable_later/struct.Bar.html '//span[@class="since"]' '2.2.2'
    #[stable(feature = "rust1", since = "1.0.0")]
    pub struct Bar;
}

#[stable(feature = "rust1", since = "1.0.0")]
pub mod stable_earlier {
    //@ has stability/stable_earlier/struct.Foo.html '//span[@class="since"]' '1.0.0'
    #[doc(inline)]
    #[stable(feature = "rust1", since = "1.0.0")]
    pub use crate::unstable::Foo;

    //@ has stability/stable_earlier/struct.Bar.html '//span[@class="since"]' '1.0.0'
    #[doc(inline)]
    #[stable(feature = "rust1", since = "1.0.0")]
    pub use crate::stable_later::Bar;
}