about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Woerister <michaelwoerister@gmail>2014-01-02 15:38:57 +0100
committerMichael Woerister <michaelwoerister@gmail>2014-01-02 15:38:57 +0100
commit645bb327dbd1fab65a87d2f0bd6ca8c3ec620422 (patch)
tree47328146709a1c47fa3e6766e1b8091a15177401
parent6d20876c3ffa34c3daaff409b995d863faea9787 (diff)
downloadrust-645bb327dbd1fab65a87d2f0bd6ca8c3ec620422.tar.gz
rust-645bb327dbd1fab65a87d2f0bd6ca8c3ec620422.zip
debuginfo: Add test case for recursive enum types (issue #11083)
-rw-r--r--src/test/debug-info/recursive-enum.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/test/debug-info/recursive-enum.rs b/src/test/debug-info/recursive-enum.rs
new file mode 100644
index 00000000000..4bdc9994c43
--- /dev/null
+++ b/src/test/debug-info/recursive-enum.rs
@@ -0,0 +1,33 @@
+// Copyright 2013 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.
+
+// xfail-android: FIXME(#10381)
+
+// compile-flags:-Z extra-debug-info
+// debugger:run
+
+// Test whether compiling a recursive enum definition crashes debug info generation. The test case
+// is taken from issue #11083.
+
+#[allow(unused_variable)];
+
+pub struct Window<'a> {
+    callbacks: WindowCallbacks<'a>
+}
+
+struct WindowCallbacks<'a> {
+    pos_callback: Option<WindowPosCallback<'a>>,
+}
+
+pub type WindowPosCallback<'a> = 'a |&Window, i32, i32|;
+
+fn main() {
+    let x = WindowCallbacks { pos_callback: None };
+}