]> git.lizzy.rs Git - rust.git/blob - src/test/rustdoc/async-fn.rs
Auto merge of #78809 - vn-ki:fix-issue-76064, r=oli-obk
[rust.git] / src / test / rustdoc / async-fn.rs
1 // edition:2018
2 #![feature(min_const_generics)]
3
4 // @has async_fn/fn.foo.html '//pre[@class="rust fn"]' 'pub async fn foo() -> Option<Foo>'
5 pub async fn foo() -> Option<Foo> {
6     None
7 }
8
9 // @has async_fn/fn.bar.html '//pre[@class="rust fn"]' 'pub async fn bar(a: i32, b: i32) -> i32'
10 pub async fn bar(a: i32, b: i32) -> i32 {
11     0
12 }
13
14 // @has async_fn/fn.baz.html '//pre[@class="rust fn"]' 'pub async fn baz<T>(a: T) -> T'
15 pub async fn baz<T>(a: T) -> T {
16     a
17 }
18
19 // @has async_fn/fn.qux.html '//pre[@class="rust fn"]' 'pub async unsafe fn qux() -> char'
20 pub async unsafe fn qux() -> char {
21     '⚠'
22 }
23
24 // @has async_fn/fn.mut_args.html '//pre[@class="rust fn"]' 'pub async fn mut_args(a: usize)'
25 pub async fn mut_args(mut a: usize) {}
26
27 // @has async_fn/fn.mut_ref.html '//pre[@class="rust fn"]' 'pub async fn mut_ref(x: i32)'
28 pub async fn mut_ref(ref mut x: i32) {}
29
30 trait Bar {}
31
32 impl Bar for () {}
33
34 // @has async_fn/fn.quux.html '//pre[@class="rust fn"]' 'pub async fn quux() -> impl Bar'
35 pub async fn quux() -> impl Bar {
36     ()
37 }
38
39 // @has async_fn/struct.Foo.html
40 // @matches - '//code' 'pub async fn f\(\)$'
41 // @matches - '//code' 'pub async unsafe fn g\(\)$'
42 // @matches - '//code' 'pub async fn mut_self\(self, first: usize\)$'
43 pub struct Foo;
44
45 impl Foo {
46     pub async fn f() {}
47     pub async unsafe fn g() {}
48     pub async fn mut_self(mut self, mut first: usize) {}
49 }
50
51 pub trait Trait<const N: usize> {}
52 // @has async_fn/fn.const_generics.html
53 // @has - '//pre[@class="rust fn"]' 'pub async fn const_generics<const N: usize>(_: impl Trait<N>)'
54 pub async fn const_generics<const N: usize>(_: impl Trait<N>) {}