about summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-08-30 07:05:25 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-09-05 04:52:50 +0000
commit234d68b7d35687999c36bc39ffd414bca7373a48 (patch)
tree984491091426085703b5ea074c77d46e6a2ba90a /src/libsyntax/ext
parente1e5c14bad0e8989523cf5974d98a8257badb88d (diff)
downloadrust-234d68b7d35687999c36bc39ffd414bca7373a48.tar.gz
rust-234d68b7d35687999c36bc39ffd414bca7373a48.zip
Improve `expand_type`.
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/expand.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index 5c548533e93..6f8af66632f 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -489,14 +489,17 @@ fn expand_trait_item(ti: ast::TraitItem, fld: &mut MacroExpander)
 }
 
 pub fn expand_type(t: P<ast::Ty>, fld: &mut MacroExpander) -> P<ast::Ty> {
-    let t = match t.node.clone() {
+    let t = match t.node {
+        ast::TyKind::Mac(_) => t.unwrap(),
+        _ => return fold::noop_fold_ty(t, fld),
+    };
+
+    match t.node {
         ast::TyKind::Mac(mac) => {
             expand_mac_invoc(mac, None, Vec::new(), t.span, fld)
         }
-        _ => t
-    };
-
-    fold::noop_fold_ty(t, fld)
+        _ => unreachable!(),
+    }
 }
 
 /// A tree-folder that performs macro expansion