Remove unnecessary CVarArgs name skipping logic
This commit is contained in:
parent
2c1dbed4aa
commit
6aead74ff2
2 changed files with 2 additions and 9 deletions
|
@ -1737,14 +1737,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn lower_fn_params_to_names(&mut self, decl: &FnDecl) -> &'hir [Ident] {
|
fn lower_fn_params_to_names(&mut self, decl: &FnDecl) -> &'hir [Ident] {
|
||||||
// Skip the `...` (`CVarArgs`) trailing arguments from the AST,
|
self.arena.alloc_from_iter(decl.inputs.iter().map(|param| match param.pat.kind {
|
||||||
// as they are not explicit in HIR/Ty function signatures.
|
|
||||||
// (instead, the `c_variadic` flag is set to `true`)
|
|
||||||
let mut inputs = &decl.inputs[..];
|
|
||||||
if decl.c_variadic() {
|
|
||||||
inputs = &inputs[..inputs.len() - 1];
|
|
||||||
}
|
|
||||||
self.arena.alloc_from_iter(inputs.iter().map(|param| match param.pat.kind {
|
|
||||||
PatKind::Ident(_, ident, _) => self.lower_ident(ident),
|
PatKind::Ident(_, ident, _) => self.lower_ident(ident),
|
||||||
_ => Ident::new(kw::Empty, self.lower_span(param.pat.span)),
|
_ => Ident::new(kw::Empty, self.lower_span(param.pat.span)),
|
||||||
}))
|
}))
|
||||||
|
|
|
@ -9,7 +9,7 @@ use ::std::prelude::rust_2015::*;
|
||||||
extern crate std;
|
extern crate std;
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
fn foo(x: i32, ...);
|
fn foo(x: i32, va1: ...);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe extern "C" fn bar(_: i32, mut va2: ...) -> usize { va2.arg::<usize>() }
|
unsafe extern "C" fn bar(_: i32, mut va2: ...) -> usize { va2.arg::<usize>() }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue