]> git.lizzy.rs Git - rust.git/blob - tests/rustdoc/const-display.rs
Fix problem noticed in PR106859 with char -> u8 suggestion
[rust.git] / tests / rustdoc / const-display.rs
1 #![crate_name = "foo"]
2
3 #![unstable(feature = "humans",
4             reason = "who ever let humans program computers, we're apparently really bad at it",
5             issue = "none")]
6
7 #![feature(foo, foo2)]
8 #![feature(staged_api)]
9
10 // @has 'foo/fn.foo.html' '//pre' 'pub fn foo() -> u32'
11 // @has - '//span[@class="since"]' '1.0.0 (const: unstable)'
12 #[stable(feature = "rust1", since = "1.0.0")]
13 #[rustc_const_unstable(feature="foo", issue = "none")]
14 pub const fn foo() -> u32 { 42 }
15
16 // @has 'foo/fn.foo_unsafe.html' '//pre' 'pub unsafe fn foo_unsafe() -> u32'
17 // @has - '//span[@class="since"]' '1.0.0 (const: unstable)'
18 #[stable(feature = "rust1", since = "1.0.0")]
19 #[rustc_const_unstable(feature="foo", issue = "none")]
20 pub const unsafe fn foo_unsafe() -> u32 { 42 }
21
22 // @has 'foo/fn.foo2.html' '//pre' 'pub const fn foo2() -> u32'
23 // @!hasraw - '//span[@class="since"]'
24 #[unstable(feature = "humans", issue = "none")]
25 pub const fn foo2() -> u32 { 42 }
26
27 // @has 'foo/fn.bar2.html' '//pre' 'pub const fn bar2() -> u32'
28 // @has - //span '1.0.0 (const: 1.0.0)'
29 #[stable(feature = "rust1", since = "1.0.0")]
30 #[rustc_const_stable(feature = "rust1", since = "1.0.0")]
31 pub const fn bar2() -> u32 { 42 }
32
33
34 // @has 'foo/fn.foo2_gated.html' '//pre' 'pub const unsafe fn foo2_gated() -> u32'
35 // @!hasraw - '//span[@class="since"]'
36 #[unstable(feature = "foo2", issue = "none")]
37 pub const unsafe fn foo2_gated() -> u32 { 42 }
38
39 // @has 'foo/fn.bar2_gated.html' '//pre' 'pub const unsafe fn bar2_gated() -> u32'
40 // @has - '//span[@class="since"]' '1.0.0 (const: 1.0.0)'
41 #[stable(feature = "rust1", since = "1.0.0")]
42 #[rustc_const_stable(feature = "rust1", since = "1.0.0")]
43 pub const unsafe fn bar2_gated() -> u32 { 42 }
44
45 // @has 'foo/fn.bar_not_gated.html' '//pre' 'pub const unsafe fn bar_not_gated() -> u32'
46 // @!hasraw - '//span[@class="since"]'
47 pub const unsafe fn bar_not_gated() -> u32 { 42 }
48
49 pub struct Foo;
50
51 impl Foo {
52     // @has 'foo/struct.Foo.html' '//*[@id="method.gated"]/h4[@class="code-header"]' 'pub fn gated() -> u32'
53     // @has - '//span[@class="since"]' '1.0.0 (const: unstable)'
54     #[stable(feature = "rust1", since = "1.0.0")]
55     #[rustc_const_unstable(feature="foo", issue = "none")]
56     pub const fn gated() -> u32 { 42 }
57
58     // @has 'foo/struct.Foo.html' '//*[@id="method.gated_unsafe"]/h4[@class="code-header"]' 'pub unsafe fn gated_unsafe() -> u32'
59     // @has - '//span[@class="since"]' '1.0.0 (const: unstable)'
60     #[stable(feature = "rust1", since = "1.0.0")]
61     #[rustc_const_unstable(feature="foo", issue = "none")]
62     pub const unsafe fn gated_unsafe() -> u32 { 42 }
63
64     // @has 'foo/struct.Foo.html' '//*[@id="method.stable_impl"]/h4[@class="code-header"]' 'pub const fn stable_impl() -> u32'
65     // @has - '//span[@class="since"]' '1.0.0 (const: 1.2.0)'
66     #[stable(feature = "rust1", since = "1.0.0")]
67     #[rustc_const_stable(feature = "const2", since = "1.2.0")]
68     pub const fn stable_impl() -> u32 { 42 }
69 }
70
71 #[stable(feature = "rust1", since = "1.0.0")]
72 pub struct Bar;
73
74 impl Bar {
75     // Do not show non-const stabilities that are the same as the enclosing item.
76     // @matches 'foo/struct.Bar.html' '//span[@class="since"]' '^const: 1.2.0$'
77     #[stable(feature = "rust1", since = "1.0.0")]
78     #[rustc_const_stable(feature = "const2", since = "1.2.0")]
79     pub const fn stable_impl() -> u32 { 42 }
80
81     // Show const-stability even for unstable functions.
82     // @matches 'foo/struct.Bar.html' '//span[@class="since"]' '^const: 1.3.0$'
83     #[unstable(feature = "foo2", issue = "none")]
84     #[rustc_const_stable(feature = "const3", since = "1.3.0")]
85     pub const fn const_stable_unstable() -> u32 { 42 }
86 }