summaryrefslogtreecommitdiff
path: root/tests/rustdoc-json/methods/abi.rs
blob: 4c97d97ceba5265596354e2a90828517150f4df1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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() {}
}