From 04d0a8cb83e713f71848c4afeba72d7e776acc6a Mon Sep 17 00:00:00 2001 From: Dan Robertson Date: Sat, 2 Mar 2019 03:14:29 +0000 Subject: [PATCH 1/2] Fix C-variadic function printing There is no longer a need to append the string `", ..."` to a functions args as `...` is parsed as an argument and will appear in the functions arguments. --- src/libsyntax/print/pprust.rs | 3 --- src/test/pretty/fn-variadic.rs | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 src/test/pretty/fn-variadic.rs diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 942bd96939173..49e3fad4af0ff 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -2814,9 +2814,6 @@ impl<'a> State<'a> { -> io::Result<()> { self.popen()?; self.commasep(Inconsistent, &decl.inputs, |s, arg| s.print_arg(arg, false))?; - if decl.c_variadic { - self.s.word(", ...")?; - } self.pclose()?; self.print_fn_output(decl) diff --git a/src/test/pretty/fn-variadic.rs b/src/test/pretty/fn-variadic.rs new file mode 100644 index 0000000000000..d3b193a3e1814 --- /dev/null +++ b/src/test/pretty/fn-variadic.rs @@ -0,0 +1,15 @@ +// Check that `fn foo(x: i32, ...)` does not print as `fn foo(x: i32, ..., ...)`. +// See issue #58853. +// +// pp-exact +#![feature(c_variadic)] + +extern "C" { + pub fn foo(x: i32, ...); +} + +pub unsafe extern "C" fn bar(_: i32, mut ap: ...) -> usize { + ap.arg::() +} + +fn main() { } From 72f0ca51ef3d946a0a43eadad7b938001186572b Mon Sep 17 00:00:00 2001 From: Alexander Regueiro Date: Sat, 2 Mar 2019 15:16:36 +0000 Subject: [PATCH 2/2] Nit --- src/test/pretty/fn-variadic.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/pretty/fn-variadic.rs b/src/test/pretty/fn-variadic.rs index d3b193a3e1814..59e477cfa8ecb 100644 --- a/src/test/pretty/fn-variadic.rs +++ b/src/test/pretty/fn-variadic.rs @@ -1,6 +1,6 @@ // Check that `fn foo(x: i32, ...)` does not print as `fn foo(x: i32, ..., ...)`. // See issue #58853. -// + // pp-exact #![feature(c_variadic)] @@ -12,4 +12,4 @@ pub unsafe extern "C" fn bar(_: i32, mut ap: ...) -> usize { ap.arg::() } -fn main() { } +fn main() {}