Skip to content

Commit e43c478

Browse files
committed
Encode foreign function argument names
Fix #21917
1 parent df1cfde commit e43c478

File tree

4 files changed

+42
-1
lines changed

4 files changed

+42
-1
lines changed

src/librustc/metadata/encoder.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1466,7 +1466,7 @@ fn encode_info_for_foreign_item(ecx: &EncodeContext,
14661466
encode_def_id(rbml_w, local_def(nitem.id));
14671467
encode_visibility(rbml_w, nitem.vis);
14681468
match nitem.node {
1469-
ast::ForeignItemFn(..) => {
1469+
ast::ForeignItemFn(ref fndecl, _) => {
14701470
encode_family(rbml_w, FN_FAMILY);
14711471
encode_bounds_and_type(rbml_w, ecx,
14721472
&lookup_item_type(ecx.tcx,local_def(nitem.id)));
@@ -1478,6 +1478,7 @@ fn encode_info_for_foreign_item(ecx: &EncodeContext,
14781478
let stab = stability::lookup(ecx.tcx, ast_util::local_def(nitem.id));
14791479
encode_stability(rbml_w, stab);
14801480
encode_symbol(ecx, rbml_w, nitem.id);
1481+
encode_method_argument_names(rbml_w, &*fndecl);
14811482
}
14821483
ast::ForeignItemStatic(_, mutbl) => {
14831484
if mutbl {
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
-include ../tools.mk
2+
3+
all: lib.rs
4+
$(HOST_RPATH_ENV) $(RUSTC) lib.rs
5+
$(HOST_RPATH_ENV) $(RUSTDOC) -w html -o $(TMPDIR)/doc lib.rs
6+
$(HOST_RPATH_ENV) $(RUSTDOC) -L $(TMPDIR) -w html -o $(TMPDIR)/doc user.rs
7+
$(HTMLDOCCK) $(TMPDIR)/doc lib.rs
8+
$(HTMLDOCCK) $(TMPDIR)/doc user.rs

src/test/run-make/rustdoc-ffi/lib.rs

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![crate_type="lib"]
12+
13+
extern "C" {
14+
// @has lib/fn.foreigner.html //pre 'pub unsafe fn foreigner(cold_as_ice: u32)'
15+
pub fn foreigner(cold_as_ice: u32);
16+
}

src/test/run-make/rustdoc-ffi/user.rs

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![crate_type="lib"]
12+
13+
extern crate lib;
14+
15+
// @has user/fn.foreigner.html //pre 'pub unsafe fn foreigner(cold_as_ice: u32)'
16+
pub use lib::foreigner;

0 commit comments

Comments
 (0)