}
ty::TyClosure(def_id, substs) => {
let infcx = infer::normalizing_infer_ctxt(cx.tcx(), &cx.tcx().tables);
- let sig = infcx.closure_type(def_id, substs).sig;
- subroutine_type_metadata(cx, unique_type_id, &sig, usage_site_span)
+ let upvars = infcx.closure_upvars(def_id, substs).unwrap();
+ let upvar_types = upvars.iter().map(|u| u.ty).collect::<Vec<_>>();
+
+ prepare_tuple_metadata(cx,
+ t,
+ &upvar_types[..],
+ unique_type_id,
+ usage_site_span).finalize(cx)
}
ty::TyStruct(def_id, substs) => {
prepare_struct_metadata(cx,
// gdb-command:whatis f64
// gdb-check:type = f64
// gdb-command:whatis fnptr
-// gdb-check:type = void (*)(void)
+// gdb-check:type = [...] (*)([...])
// gdb-command:info functions _yyy
// gdb-check:[...]![...]_yyy([...]);
// gdb-command:continue
--- /dev/null
+// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// compile-flags:-g
+
+fn helper<F: FnOnce(usize) -> bool>(_f: F) {
+ print!("");
+}
+
+fn main() {
+ let cond = 0;
+ helper(|v| v == cond)
+}