diff options
| author | Nixon Enraght-Moony <nixon.emoony@gmail.com> | 2022-02-18 23:32:37 +0000 |
|---|---|---|
| committer | Nixon Enraght-Moony <nixon.emoony@gmail.com> | 2022-02-18 23:48:41 +0000 |
| commit | fd5adefce11c820b5ee1045058a435aa174bccf4 (patch) | |
| tree | e48641d7128babdf0e556b3bfe13df9dc140b081 /src/test/rustdoc-json/fns | |
| parent | aa601574a5fe861bffd641beccf59c7be3ed16c9 (diff) | |
| download | rust-fd5adefce11c820b5ee1045058a435aa174bccf4.tar.gz rust-fd5adefce11c820b5ee1045058a435aa174bccf4.zip | |
rustdoc-json: Add tests for fn qualifiers and ABI
Diffstat (limited to 'src/test/rustdoc-json/fns')
| -rw-r--r-- | src/test/rustdoc-json/fns/abi.rs | 25 | ||||
| -rw-r--r-- | src/test/rustdoc-json/fns/header.rs | 22 | ||||
| -rw-r--r-- | src/test/rustdoc-json/fns/qualifiers.rs | 33 |
3 files changed, 58 insertions, 22 deletions
diff --git a/src/test/rustdoc-json/fns/abi.rs b/src/test/rustdoc-json/fns/abi.rs new file mode 100644 index 00000000000..16b57913065 --- /dev/null +++ b/src/test/rustdoc-json/fns/abi.rs @@ -0,0 +1,25 @@ +// ignore-tidy-linelength + +#![feature(abi_vectorcall)] +#![feature(c_unwind)] + +// @is abi.json "$.index[*][?(@.name=='abi_rust')].inner.header.abi" \"Rust\" +pub fn abi_rust() {} + +// @is - "$.index[*][?(@.name=='abi_c')].inner.header.abi" '{"C": {"unwind": false}}' +pub extern "C" fn abi_c() {} + +// @is - "$.index[*][?(@.name=='abi_system')].inner.header.abi" '{"System": {"unwind": false}}' +pub extern "system" fn abi_system() {} + +// @is - "$.index[*][?(@.name=='abi_c_unwind')].inner.header.abi" '{"C": {"unwind": true}}' +pub extern "C-unwind" fn abi_c_unwind() {} + +// @is - "$.index[*][?(@.name=='abi_system_unwind')].inner.header.abi" '{"System": {"unwind": true}}' +pub extern "system-unwind" fn abi_system_unwind() {} + +// @is - "$.index[*][?(@.name=='abi_vectorcall')].inner.header.abi.Other" '"\"vectorcall\""' +pub extern "vectorcall" fn abi_vectorcall() {} + +// @is - "$.index[*][?(@.name=='abi_vectorcall_unwind')].inner.header.abi.Other" '"\"vectorcall-unwind\""' +pub extern "vectorcall-unwind" fn abi_vectorcall_unwind() {} diff --git a/src/test/rustdoc-json/fns/header.rs b/src/test/rustdoc-json/fns/header.rs deleted file mode 100644 index 29741dd50da..00000000000 --- a/src/test/rustdoc-json/fns/header.rs +++ /dev/null @@ -1,22 +0,0 @@ -// edition:2018 - -// @has header.json "$.index[*][?(@.name=='nothing_fn')].inner.header" "[]" -pub fn nothing_fn() {} - -// @has - "$.index[*][?(@.name=='const_fn')].inner.header" '["const"]' -pub const fn const_fn() {} - -// @has - "$.index[*][?(@.name=='async_fn')].inner.header" '["async"]' -pub async fn async_fn() {} - -// @count - "$.index[*][?(@.name=='async_unsafe_fn')].inner.header[*]" 2 -// @has - "$.index[*][?(@.name=='async_unsafe_fn')].inner.header[*]" '"async"' -// @has - "$.index[*][?(@.name=='async_unsafe_fn')].inner.header[*]" '"unsafe"' -pub async unsafe fn async_unsafe_fn() {} - -// @count - "$.index[*][?(@.name=='const_unsafe_fn')].inner.header[*]" 2 -// @has - "$.index[*][?(@.name=='const_unsafe_fn')].inner.header[*]" '"const"' -// @has - "$.index[*][?(@.name=='const_unsafe_fn')].inner.header[*]" '"unsafe"' -pub const unsafe fn const_unsafe_fn() {} - -// It's impossible for a function to be both const and async, so no test for that diff --git a/src/test/rustdoc-json/fns/qualifiers.rs b/src/test/rustdoc-json/fns/qualifiers.rs new file mode 100644 index 00000000000..5cb3b43e66a --- /dev/null +++ b/src/test/rustdoc-json/fns/qualifiers.rs @@ -0,0 +1,33 @@ +// edition:2018 + +// @is qualifiers.json "$.index[*][?(@.name=='nothing_fn')].inner.header.async" false +// @is - "$.index[*][?(@.name=='nothing_fn')].inner.header.const" false +// @is - "$.index[*][?(@.name=='nothing_fn')].inner.header.unsafe" false +pub fn nothing_fn() {} + +// @is - "$.index[*][?(@.name=='unsafe_fn')].inner.header.async" false +// @is - "$.index[*][?(@.name=='unsafe_fn')].inner.header.const" false +// @is - "$.index[*][?(@.name=='unsafe_fn')].inner.header.unsafe" true +pub unsafe fn unsafe_fn() {} + +// @is - "$.index[*][?(@.name=='const_fn')].inner.header.async" false +// @is - "$.index[*][?(@.name=='const_fn')].inner.header.const" true +// @is - "$.index[*][?(@.name=='const_fn')].inner.header.unsafe" false +pub const fn const_fn() {} + +// @is - "$.index[*][?(@.name=='async_fn')].inner.header.async" true +// @is - "$.index[*][?(@.name=='async_fn')].inner.header.const" false +// @is - "$.index[*][?(@.name=='async_fn')].inner.header.unsafe" false +pub async fn async_fn() {} + +// @is - "$.index[*][?(@.name=='async_unsafe_fn')].inner.header.async" true +// @is - "$.index[*][?(@.name=='async_unsafe_fn')].inner.header.const" false +// @is - "$.index[*][?(@.name=='async_unsafe_fn')].inner.header.unsafe" true +pub async unsafe fn async_unsafe_fn() {} + +// @is - "$.index[*][?(@.name=='const_unsafe_fn')].inner.header.async" false +// @is - "$.index[*][?(@.name=='const_unsafe_fn')].inner.header.const" true +// @is - "$.index[*][?(@.name=='const_unsafe_fn')].inner.header.unsafe" true +pub const unsafe fn const_unsafe_fn() {} + +// It's impossible for a function to be both const and async, so no test for that |
