about summary refs log tree commit diff
path: root/src/test/rustdoc-json/fns
diff options
context:
space:
mode:
authorNixon Enraght-Moony <nixon.emoony@gmail.com>2022-02-18 23:32:37 +0000
committerNixon Enraght-Moony <nixon.emoony@gmail.com>2022-02-18 23:48:41 +0000
commitfd5adefce11c820b5ee1045058a435aa174bccf4 (patch)
treee48641d7128babdf0e556b3bfe13df9dc140b081 /src/test/rustdoc-json/fns
parentaa601574a5fe861bffd641beccf59c7be3ed16c9 (diff)
downloadrust-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.rs25
-rw-r--r--src/test/rustdoc-json/fns/header.rs22
-rw-r--r--src/test/rustdoc-json/fns/qualifiers.rs33
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