//@ pretty-compare-only //@ pretty-mode:hir //@ pp-exact:hir-fn-variadic.pp #![feature(c_variadic)] #[attr = MacroUse {arguments: UseAll}] extern crate std; #[prelude_import] use ::std::prelude::rust_2015::*; extern "C" { unsafe fn foo(x: i32, va1: ...); } unsafe extern "C" fn bar(_: i32, mut va2: ...) -> usize { va2.arg::() } fn main() { fn g1(_: extern "C" fn(_: u8, va: ...)) { } fn g2(_: extern "C" fn(_: u8, ...)) { } fn g3(_: extern "C" fn(u8, va: ...)) { } fn g4(_: extern "C" fn(u8, ...)) { } fn g5(_: extern "C" fn(va: ...)) { } fn g6(_: extern "C" fn(...)) { } { let _ = { unsafe extern "C" fn f1(_: u8, va: ...) { } }; }; { let _ = { unsafe extern "C" fn f2(_: u8, _: ...) { } }; }; { let _ = { unsafe extern "C" fn f5(va: ...) { } }; }; { let _ = { unsafe extern "C" fn f6(_: ...) { } }; }; }