summaryrefslogtreecommitdiffstats
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 000000000..3c1934ade
--- /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());
+}