]> git.proxmox.com Git - rustc.git/blame - src/test/rustdoc/const-display.rs
New upstream version 1.65.0+dfsg1
[rustc.git] / src / test / rustdoc / const-display.rs
CommitLineData
0731742a
XL
1#![crate_name = "foo"]
2
3#![unstable(feature = "humans",
4 reason = "who ever let humans program computers, we're apparently really bad at it",
dfeec247 5 issue = "none")]
0731742a 6
60c5eb7d 7#![feature(foo, foo2)]
0731742a
XL
8#![feature(staged_api)]
9
136023e0
XL
10// @has 'foo/fn.foo.html' '//pre' 'pub fn foo() -> u32'
11// @has - '//span[@class="since"]' '1.0.0 (const: unstable)'
0731742a 12#[stable(feature = "rust1", since = "1.0.0")]
dfeec247 13#[rustc_const_unstable(feature="foo", issue = "none")]
136023e0
XL
14pub 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")]
20pub const unsafe fn foo_unsafe() -> u32 { 42 }
0731742a 21
1b1a35ee 22// @has 'foo/fn.foo2.html' '//pre' 'pub const fn foo2() -> u32'
f2b60f7d 23// @!hasraw - '//span[@class="since"]'
dfeec247 24#[unstable(feature = "humans", issue = "none")]
0731742a
XL
25pub const fn foo2() -> u32 { 42 }
26
27// @has 'foo/fn.bar2.html' '//pre' 'pub const fn bar2() -> u32'
fc512014 28// @has - //span '1.0.0 (const: 1.0.0)'
0731742a 29#[stable(feature = "rust1", since = "1.0.0")]
60c5eb7d 30#[rustc_const_stable(feature = "rust1", since = "1.0.0")]
0731742a
XL
31pub const fn bar2() -> u32 { 42 }
32
136023e0 33
1b1a35ee 34// @has 'foo/fn.foo2_gated.html' '//pre' 'pub const unsafe fn foo2_gated() -> u32'
f2b60f7d 35// @!hasraw - '//span[@class="since"]'
dfeec247 36#[unstable(feature = "foo2", issue = "none")]
0731742a
XL
37pub const unsafe fn foo2_gated() -> u32 { 42 }
38
39// @has 'foo/fn.bar2_gated.html' '//pre' 'pub const unsafe fn bar2_gated() -> u32'
fc512014 40// @has - '//span[@class="since"]' '1.0.0 (const: 1.0.0)'
0731742a 41#[stable(feature = "rust1", since = "1.0.0")]
60c5eb7d 42#[rustc_const_stable(feature = "rust1", since = "1.0.0")]
0731742a
XL
43pub const unsafe fn bar2_gated() -> u32 { 42 }
44
1b1a35ee 45// @has 'foo/fn.bar_not_gated.html' '//pre' 'pub const unsafe fn bar_not_gated() -> u32'
f2b60f7d 46// @!hasraw - '//span[@class="since"]'
0731742a 47pub const unsafe fn bar_not_gated() -> u32 { 42 }
3dfed10e
XL
48
49pub struct Foo;
50
51impl Foo {
5099ac24 52 // @has 'foo/struct.Foo.html' '//*[@id="method.gated"]/h4[@class="code-header"]' 'pub fn gated() -> u32'
136023e0 53 // @has - '//span[@class="since"]' '1.0.0 (const: unstable)'
17df50a5
XL
54 #[stable(feature = "rust1", since = "1.0.0")]
55 #[rustc_const_unstable(feature="foo", issue = "none")]
56 pub const fn gated() -> u32 { 42 }
57
5099ac24 58 // @has 'foo/struct.Foo.html' '//*[@id="method.gated_unsafe"]/h4[@class="code-header"]' 'pub unsafe fn gated_unsafe() -> u32'
136023e0 59 // @has - '//span[@class="since"]' '1.0.0 (const: unstable)'
3dfed10e
XL
60 #[stable(feature = "rust1", since = "1.0.0")]
61 #[rustc_const_unstable(feature="foo", issue = "none")]
136023e0 62 pub const unsafe fn gated_unsafe() -> u32 { 42 }
fc512014 63
5099ac24 64 // @has 'foo/struct.Foo.html' '//*[@id="method.stable_impl"]/h4[@class="code-header"]' 'pub const fn stable_impl() -> u32'
fc512014
XL
65 // @has - '//span[@class="since"]' '1.0.0 (const: 1.2.0)'
66 #[stable(feature = "rust1", since = "1.0.0")]
5e7ed085 67 #[rustc_const_stable(feature = "const2", since = "1.2.0")]
fc512014 68 pub const fn stable_impl() -> u32 { 42 }
3dfed10e 69}
5099ac24
FG
70
71#[stable(feature = "rust1", since = "1.0.0")]
72pub struct Bar;
73
74impl 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")]
5e7ed085 78 #[rustc_const_stable(feature = "const2", since = "1.2.0")]
5099ac24
FG
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")]
5e7ed085 84 #[rustc_const_stable(feature = "const3", since = "1.3.0")]
5099ac24
FG
85 pub const fn const_stable_unstable() -> u32 { 42 }
86}