summaryrefslogtreecommitdiffstats
path: root/src/test/rustdoc-json/methods
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /src/test/rustdoc-json/methods
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/rustdoc-json/methods')
-rw-r--r--src/test/rustdoc-json/methods/abi.rs55
-rw-r--r--src/test/rustdoc-json/methods/qualifiers.rs37
2 files changed, 92 insertions, 0 deletions
diff --git a/src/test/rustdoc-json/methods/abi.rs b/src/test/rustdoc-json/methods/abi.rs
new file mode 100644
index 000000000..07b01d03b
--- /dev/null
+++ b/src/test/rustdoc-json/methods/abi.rs
@@ -0,0 +1,55 @@
+// ignore-tidy-linelength
+
+#![feature(abi_vectorcall)]
+#![feature(c_unwind)]
+#![feature(no_core)]
+#![no_core]
+
+// @has abi.json "$.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/src/test/rustdoc-json/methods/qualifiers.rs b/src/test/rustdoc-json/methods/qualifiers.rs
new file mode 100644
index 000000000..af36d36b6
--- /dev/null
+++ b/src/test/rustdoc-json/methods/qualifiers.rs
@@ -0,0 +1,37 @@
+// edition:2018
+
+pub struct Foo;
+
+impl Foo {
+ // @is qualifiers.json "$.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
+}