3 #![unstable(feature = "humans",
4 reason = "who ever let humans program computers, we're apparently really bad at it",
8 #![feature(staged_api)]
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 }
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 }
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 }
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 }
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 }
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 }
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 }
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 }
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 }
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 }
71 #[stable(feature = "rust1", since = "1.0.0")]
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 }
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 }