about summary refs log tree commit diff
path: root/tests/ui/issues/issue-3556.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/issues/issue-3556.rs')
-rw-r--r--tests/ui/issues/issue-3556.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/ui/issues/issue-3556.rs b/tests/ui/issues/issue-3556.rs
new file mode 100644
index 00000000000..3c1934ade35
--- /dev/null
+++ b/tests/ui/issues/issue-3556.rs
@@ -0,0 +1,36 @@
+// run-pass
+#![allow(dead_code)]
+
+#[derive(Debug)]
+enum Token {
+    Text(String),
+    ETag(Vec<String>, String),
+    UTag(Vec<String>, String),
+    Section(Vec<String>, bool, Vec<Token>, String,
+            String, String, String, String),
+    IncompleteSection(Vec<String>, bool, String, bool),
+    Partial(String, String, String),
+}
+
+fn check_strs(actual: &str, expected: &str) -> bool
+{
+    if actual != expected
+    {
+        println!("Found {}, but expected {}", actual, expected);
+        return false;
+    }
+    return true;
+}
+
+pub fn main()
+{
+    let t = Token::Text("foo".to_string());
+    let u = Token::Section(vec!["alpha".to_string()],
+                    true,
+                    vec![t],
+                    "foo".to_string(),
+                    "foo".to_string(), "foo".to_string(), "foo".to_string(),
+                    "foo".to_string());
+    let v = format!("{:?}", u);    // this is the line that causes the seg fault
+    assert!(!v.is_empty());
+}