// 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(m!(), T) where T: Trait; let x: m!() = m!(); std::cell::Cell::::new(m!()); impl std::ops::Index for dyn Trait<(m!(), T)> where T: Trait { type Output = m!(); fn index(&self, i: m!()) -> &m!() { unimplemented!() } } } trait Trait {} impl Trait for i32 {}