Macro item printing
diff --git a/src/expr.rs b/src/expr.rs
index e3e4e55..647edbd 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -827,19 +827,12 @@
fn requires_semi(e: &Expr) -> bool {
match *e {
- Expr::Mac(ref mac) => {
- let len = mac.tts.len();
- if let TokenTree::Delimited(
- Delimited {
- delim: DelimToken::Brace,
- ..
- }
- ) = mac.tts[len - 1] {
- false
- } else {
- true
- }
- }
+ Expr::Mac(ref mac) => match mac.tts.last() {
+ Some(&TokenTree::Delimited(
+ Delimited { delim: DelimToken::Brace, .. }
+ )) => false,
+ _ => true,
+ },
Expr::If(_, _, _) |
Expr::IfLet(_, _, _, _) |
@@ -1164,7 +1157,7 @@
tokens.append("return");
opt_expr.to_tokens(tokens);
}
- Expr::Mac(ref _mac) => unimplemented!(),
+ Expr::Mac(ref mac) => mac.to_tokens(tokens),
Expr::Struct(ref path, ref fields, ref base) => {
path.to_tokens(tokens);
tokens.append("{");
@@ -1309,7 +1302,7 @@
Pat::Lit(ref _expr) => unimplemented!(),
Pat::Range(ref _lower, ref _upper) => unimplemented!(),
Pat::Vec(ref _before, ref _dots, ref _after) => unimplemented!(),
- Pat::Mac(ref _mac) => unimplemented!(),
+ Pat::Mac(ref mac) => mac.to_tokens(tokens),
}
}
}