summaryrefslogtreecommitdiffstats
path: root/src/test/ui/macros/type-macros-simple.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/macros/type-macros-simple.rs')
-rw-r--r--src/test/ui/macros/type-macros-simple.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/macros/type-macros-simple.rs b/src/test/ui/macros/type-macros-simple.rs
new file mode 100644
index 000000000..dd3ad2ef0
--- /dev/null
+++ b/src/test/ui/macros/type-macros-simple.rs
@@ -0,0 +1,30 @@
+// run-pass
+#![allow(dead_code)]
+#![allow(unused_variables)]
+macro_rules! Tuple {
+ { $A:ty,$B:ty } => { ($A, $B) }
+}
+
+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> std::ops::Index<m!()> for dyn Trait<(m!(), T)>
+ where T: Trait<m!()>
+ {
+ type Output = m!();
+ fn index(&self, i: m!()) -> &m!() {
+ unimplemented!()
+ }
+ }
+}
+
+trait Trait<T> {}
+impl Trait<i32> for i32 {}