2022-02-18 17:32:37 -06:00
|
|
|
// ignore-tidy-linelength
|
|
|
|
|
|
|
|
#![feature(abi_vectorcall)]
|
|
|
|
|
2022-08-17 05:55:09 -05:00
|
|
|
// @has "$.index[*][?(@.name=='Foo')]"
|
2022-02-18 17:32:37 -06:00
|
|
|
pub struct Foo;
|
|
|
|
|
|
|
|
impl Foo {
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='abi_rust')].inner.function.header.abi" \"Rust\"
|
2022-02-18 17:32:37 -06:00
|
|
|
pub fn abi_rust() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='abi_c')].inner.function.header.abi" '{"C": {"unwind": false}}'
|
2022-02-18 17:32:37 -06:00
|
|
|
pub extern "C" fn abi_c() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='abi_system')].inner.function.header.abi" '{"System": {"unwind": false}}'
|
2022-02-18 17:32:37 -06:00
|
|
|
pub extern "system" fn abi_system() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='abi_c_unwind')].inner.function.header.abi" '{"C": {"unwind": true}}'
|
2022-02-18 17:32:37 -06:00
|
|
|
pub extern "C-unwind" fn abi_c_unwind() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='abi_system_unwind')].inner.function.header.abi" '{"System": {"unwind": true}}'
|
2022-02-18 17:32:37 -06:00
|
|
|
pub extern "system-unwind" fn abi_system_unwind() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='abi_vectorcall')].inner.function.header.abi.Other" '"\"vectorcall\""'
|
2022-02-18 17:32:37 -06:00
|
|
|
pub extern "vectorcall" fn abi_vectorcall() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='abi_vectorcall_unwind')].inner.function.header.abi.Other" '"\"vectorcall-unwind\""'
|
2022-02-18 17:32:37 -06:00
|
|
|
pub extern "vectorcall-unwind" fn abi_vectorcall_unwind() {}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub trait Bar {
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='trait_abi_rust')].inner.function.header.abi" \"Rust\"
|
2022-02-18 17:32:37 -06:00
|
|
|
fn trait_abi_rust() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='trait_abi_c')].inner.function.header.abi" '{"C": {"unwind": false}}'
|
2022-02-18 17:32:37 -06:00
|
|
|
extern "C" fn trait_abi_c() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='trait_abi_system')].inner.function.header.abi" '{"System": {"unwind": false}}'
|
2022-02-18 17:32:37 -06:00
|
|
|
extern "system" fn trait_abi_system() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='trait_abi_c_unwind')].inner.function.header.abi" '{"C": {"unwind": true}}'
|
2022-02-18 17:32:37 -06:00
|
|
|
extern "C-unwind" fn trait_abi_c_unwind() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='trait_abi_system_unwind')].inner.function.header.abi" '{"System": {"unwind": true}}'
|
2022-02-18 17:32:37 -06:00
|
|
|
extern "system-unwind" fn trait_abi_system_unwind() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='trait_abi_vectorcall')].inner.function.header.abi.Other" '"\"vectorcall\""'
|
2022-02-18 17:32:37 -06:00
|
|
|
extern "vectorcall" fn trait_abi_vectorcall() {}
|
|
|
|
|
2023-05-22 12:17:52 -05:00
|
|
|
// @is "$.index[*][?(@.name=='trait_abi_vectorcall_unwind')].inner.function.header.abi.Other" '"\"vectorcall-unwind\""'
|
2022-02-18 17:32:37 -06:00
|
|
|
extern "vectorcall-unwind" fn trait_abi_vectorcall_unwind() {}
|
|
|
|
}
|