Skip to content

Commit

Permalink
Auto merge of rust-lang#81502 - CraftSpider:method-abi, r=jyn514
Browse files Browse the repository at this point in the history
Add abi field to `Method`

Also bumps version and adds a test (Will conflict with rust-lang#81500, whichever is merged first)

Rationale: It's possible for methods to have an ABI. This should be exposed in the JSON.
  • Loading branch information
bors committed Feb 7, 2021
2 parents 43e1ea2 + ac75faf commit ae00b62
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/librustdoc/json/conversions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -440,6 +440,7 @@ crate fn from_function_method(function: clean::Function, has_body: bool) -> Meth
decl: decl.into(),
generics: generics.into(),
header: stringify_header(&header),
abi: header.abi.to_string(),
has_body,
}
}
Expand Down
1 change: 1 addition & 0 deletions src/rustdoc-json-types/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,7 @@ pub struct Method {
pub decl: FnDecl,
pub generics: Generics,
pub header: String,
pub abi: String,
pub has_body: bool,
}

Expand Down
25 changes: 25 additions & 0 deletions src/test/rustdoc-json/method_abi.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// @has method_abi.json "$.index[*][?(@.name=='Foo')]"
pub struct Foo;

impl Foo {
// @has - "$.index[*][?(@.name=='abi_rust')].inner.abi" '"\"Rust\""'
pub fn abi_rust() {}

// @has - "$.index[*][?(@.name=='abi_c')].inner.abi" '"\"C\""'
pub extern "C" fn abi_c() {}

// @has - "$.index[*][?(@.name=='abi_system')].inner.abi" '"\"system\""'
pub extern "system" fn abi_system() {}
}

// @has method_abi.json "$.index[*][?(@.name=='Bar')]"
pub trait Bar {
// @has - "$.index[*][?(@.name=='trait_abi_rust')].inner.abi" '"\"Rust\""'
fn trait_abi_rust();

// @has - "$.index[*][?(@.name=='trait_abi_c')].inner.abi" '"\"C\""'
extern "C" fn trait_abi_c();

// @has - "$.index[*][?(@.name=='trait_abi_system')].inner.abi" '"\"system\""'
extern "system" fn trait_abi_system();
}

0 comments on commit ae00b62

Please sign in to comment.