macro_rules! generate_node_base(($type_:path, $field:expr) => (
impl<View> NodeBase<View> for $type_ {
fn base_node(&self) -> &Node<View> {
unsafe { cast::transmute(&$field) }
}
fn base_node_mut(&mut self) -> &mut Node<View> {
unsafe { cast::transmute(&mut $field) }
}
}
))
This macro causes an ICE of No type for local variable 49656 when invoked like generate_node_base!(Comment, self.parent.parent). When I make the macro take two different expressions (using the second in the second method) and invoke it like generate_node_base!(Comment, self.parent.parent, self.parent.parent), it works fine.