about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-09-17 23:31:32 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-09-17 23:40:17 +0000
commitc7e4ae0d8d22847259e2e08a851f80e375221707 (patch)
tree20db14882ab242fa23587aa082ddfb4afe7f6d89
parent2cee9ec3b36933e143f2b2cc36a351da0a9114eb (diff)
downloadrust-c7e4ae0d8d22847259e2e08a851f80e375221707.tar.gz
rust-c7e4ae0d8d22847259e2e08a851f80e375221707.zip
Add regression test.
-rw-r--r--src/test/run-pass/type-macros-simple.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/test/run-pass/type-macros-simple.rs b/src/test/run-pass/type-macros-simple.rs
index 7d1045cf3f1..6b0deff3ba4 100644
--- a/src/test/run-pass/type-macros-simple.rs
+++ b/src/test/run-pass/type-macros-simple.rs
@@ -15,3 +15,22 @@ macro_rules! Tuple {
 fn main() {
     let x: Tuple!(i32, i32) = (1, 2);
 }
+
+fn issue_36540() {
+    let i32 = 0;
+    macro_rules! m { () => { i32 } }
+    struct S<T = m!()>(m!(), T) where T: Trait<m!()>;
+
+    let x: m!() = m!();
+    std::cell::Cell::<m!()>::new(m!());
+    impl<T = m!()> std::ops::Index<m!()> for Trait<(m!(), T)>
+        where T: Trait<m!()>
+    {
+        type Output = m!();
+        fn index(&self, i: m!()) -> &m!() {
+            unimplemented!()
+        }
+    }
+}
+
+trait Trait<T> {}