about summary refs log tree commit diff
path: root/tests/rustdoc-json/methods
diff options
context:
space:
mode:
authorAlbert Larsan <74931857+albertlarsan68@users.noreply.github.com>2023-01-05 09:13:28 +0100
committerAlbert Larsan <74931857+albertlarsan68@users.noreply.github.com>2023-01-11 09:32:08 +0000
commitcf2dff2b1e3fa55fa5415d524200070d0d7aacfe (patch)
tree40a88d9a46aaf3e8870676eb2538378b75a263eb /tests/rustdoc-json/methods
parentca855e6e42787ecd062d81d53336fe6788ef51a9 (diff)
downloadrust-cf2dff2b1e3fa55fa5415d524200070d0d7aacfe.tar.gz
rust-cf2dff2b1e3fa55fa5415d524200070d0d7aacfe.zip
Move /src/test to /tests
Diffstat (limited to 'tests/rustdoc-json/methods')
-rw-r--r--tests/rustdoc-json/methods/abi.rs55
-rw-r--r--tests/rustdoc-json/methods/qualifiers.rs37
2 files changed, 92 insertions, 0 deletions
diff --git a/tests/rustdoc-json/methods/abi.rs b/tests/rustdoc-json/methods/abi.rs
new file mode 100644
index 00000000000..4c97d97ceba
--- /dev/null
+++ b/tests/rustdoc-json/methods/abi.rs
@@ -0,0 +1,55 @@
+// ignore-tidy-linelength
+
+#![feature(abi_vectorcall)]
+#![feature(c_unwind)]
+#![feature(no_core)]
+#![no_core]
+
+// @has "$.index[*][?(@.name=='Foo')]"
+pub struct Foo;
+
+impl Foo {
+    // @is "$.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() {}
+}
+
+pub trait Bar {
+    // @is "$.index[*][?(@.name=='trait_abi_rust')].inner.header.abi" \"Rust\"
+    fn trait_abi_rust() {}
+
+    // @is "$.index[*][?(@.name=='trait_abi_c')].inner.header.abi" '{"C": {"unwind": false}}'
+    extern "C" fn trait_abi_c() {}
+
+    // @is "$.index[*][?(@.name=='trait_abi_system')].inner.header.abi" '{"System": {"unwind": false}}'
+    extern "system" fn trait_abi_system() {}
+
+    // @is "$.index[*][?(@.name=='trait_abi_c_unwind')].inner.header.abi" '{"C": {"unwind": true}}'
+    extern "C-unwind" fn trait_abi_c_unwind() {}
+
+    // @is "$.index[*][?(@.name=='trait_abi_system_unwind')].inner.header.abi" '{"System": {"unwind": true}}'
+    extern "system-unwind" fn trait_abi_system_unwind() {}
+
+    // @is "$.index[*][?(@.name=='trait_abi_vectorcall')].inner.header.abi.Other" '"\"vectorcall\""'
+    extern "vectorcall" fn trait_abi_vectorcall() {}
+
+    // @is "$.index[*][?(@.name=='trait_abi_vectorcall_unwind')].inner.header.abi.Other" '"\"vectorcall-unwind\""'
+    extern "vectorcall-unwind" fn trait_abi_vectorcall_unwind() {}
+}
diff --git a/tests/rustdoc-json/methods/qualifiers.rs b/tests/rustdoc-json/methods/qualifiers.rs
new file mode 100644
index 00000000000..b9a5e56012e
--- /dev/null
+++ b/tests/rustdoc-json/methods/qualifiers.rs
@@ -0,0 +1,37 @@
+// edition:2018
+
+pub struct Foo;
+
+impl Foo {
+    // @is "$.index[*][?(@.name=='const_meth')].inner.header.async" false
+    // @is "$.index[*][?(@.name=='const_meth')].inner.header.const"  true
+    // @is "$.index[*][?(@.name=='const_meth')].inner.header.unsafe" false
+    pub const fn const_meth() {}
+
+    // @is "$.index[*][?(@.name=='nothing_meth')].inner.header.async"  false
+    // @is "$.index[*][?(@.name=='nothing_meth')].inner.header.const"  false
+    // @is "$.index[*][?(@.name=='nothing_meth')].inner.header.unsafe" false
+    pub fn nothing_meth() {}
+
+    // @is "$.index[*][?(@.name=='unsafe_meth')].inner.header.async"  false
+    // @is "$.index[*][?(@.name=='unsafe_meth')].inner.header.const"  false
+    // @is "$.index[*][?(@.name=='unsafe_meth')].inner.header.unsafe" true
+    pub unsafe fn unsafe_meth() {}
+
+    // @is "$.index[*][?(@.name=='async_meth')].inner.header.async"  true
+    // @is "$.index[*][?(@.name=='async_meth')].inner.header.const"  false
+    // @is "$.index[*][?(@.name=='async_meth')].inner.header.unsafe" false
+    pub async fn async_meth() {}
+
+    // @is "$.index[*][?(@.name=='async_unsafe_meth')].inner.header.async"  true
+    // @is "$.index[*][?(@.name=='async_unsafe_meth')].inner.header.const"  false
+    // @is "$.index[*][?(@.name=='async_unsafe_meth')].inner.header.unsafe" true
+    pub async unsafe fn async_unsafe_meth() {}
+
+    // @is "$.index[*][?(@.name=='const_unsafe_meth')].inner.header.async"  false
+    // @is "$.index[*][?(@.name=='const_unsafe_meth')].inner.header.const"  true
+    // @is "$.index[*][?(@.name=='const_unsafe_meth')].inner.header.unsafe" true
+    pub const unsafe fn const_unsafe_meth() {}
+
+    // It's impossible for a method to be both const and async, so no test for that
+}