about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test/auxiliary/issue-2631-a.rs15
-rw-r--r--src/test/run-pass/issue-2631-b.rs17
2 files changed, 32 insertions, 0 deletions
diff --git a/src/test/auxiliary/issue-2631-a.rs b/src/test/auxiliary/issue-2631-a.rs
new file mode 100644
index 00000000000..c2503bde277
--- /dev/null
+++ b/src/test/auxiliary/issue-2631-a.rs
@@ -0,0 +1,15 @@
+#[link(name = "req")];
+#[crate_type = "lib"];
+
+use std;
+
+import dvec::*;
+import dvec::dvec;
+import std::map::hashmap;
+
+type header_map = hashmap<str, @dvec<@str>>;
+
+// the unused ty param is necessary so this gets monomorphized
+fn request<T: copy>(req: header_map) {
+  let _x = *(*req.get("METHOD"))[0u];
+}
diff --git a/src/test/run-pass/issue-2631-b.rs b/src/test/run-pass/issue-2631-b.rs
new file mode 100644
index 00000000000..5e0e0302839
--- /dev/null
+++ b/src/test/run-pass/issue-2631-b.rs
@@ -0,0 +1,17 @@
+// xfail-fast
+// aux-build:issue-2631-a.rs
+
+use req;
+use std;
+
+import req::*;
+import std::map::*;
+import std::map::str_hash;
+import dvec;
+
+fn main() {
+  let v = [mut @"hi"];
+  let m: req::header_map = str_hash();
+  m.insert("METHOD", @dvec::from_vec(v));
+  request::<int>(m);
+}