about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorBjörn Steinbrink <bsteinbr@gmail.com>2015-07-14 19:08:08 +0200
committerBjörn Steinbrink <bsteinbr@gmail.com>2015-07-20 15:45:11 +0200
commit3d65c7ff849bea9cd44fc652396d50486396f867 (patch)
treeec6ddd6ce23278c91a5b1f83ba3d1f5c49a818ae /src/test
parent9175a16bd8c5b37c485dfe36fea8f9df96e02bf0 (diff)
downloadrust-3d65c7ff849bea9cd44fc652396d50486396f867.tar.gz
rust-3d65c7ff849bea9cd44fc652396d50486396f867.zip
Create proper debuginfo for closure variables
Variables for closures hold a tuple of captured variables, and not the
function itself.

Fixes #26484
Diffstat (limited to 'src/test')
-rw-r--r--src/test/debuginfo/basic-types-metadata.rs2
-rw-r--r--src/test/run-pass/issue-26484.rs20
2 files changed, 21 insertions, 1 deletions
diff --git a/src/test/debuginfo/basic-types-metadata.rs b/src/test/debuginfo/basic-types-metadata.rs
index 1bc2ddef51e..2468150a6a5 100644
--- a/src/test/debuginfo/basic-types-metadata.rs
+++ b/src/test/debuginfo/basic-types-metadata.rs
@@ -43,7 +43,7 @@
 // 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
diff --git a/src/test/run-pass/issue-26484.rs b/src/test/run-pass/issue-26484.rs
new file mode 100644
index 00000000000..d3e6fc85f13
--- /dev/null
+++ b/src/test/run-pass/issue-26484.rs
@@ -0,0 +1,20 @@
+// 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)
+}