diff options
Diffstat (limited to 'src/test/ui/macros/type-macros-simple.rs')
-rw-r--r-- | src/test/ui/macros/type-macros-simple.rs | 30 |
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 {} |