about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-09-29 02:23:19 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-09-29 02:25:21 +0000
commit316f7bb1a8be22a585a8edb6a4bcb84869ca53dd (patch)
treea26ffc37bdbca8a6077c2120b2904aa9ef9fc58d
parent755516bb96cc0f74c3098d2a64917f4e0a6f3f03 (diff)
downloadrust-316f7bb1a8be22a585a8edb6a4bcb84869ca53dd.tar.gz
rust-316f7bb1a8be22a585a8edb6a4bcb84869ca53dd.zip
Fix ICE on a macro in a constant integer position that expands into other macros.
-rw-r--r--src/librustc_resolve/macros.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/librustc_resolve/macros.rs b/src/librustc_resolve/macros.rs
index 17f2dff28c3..947aeb4439e 100644
--- a/src/librustc_resolve/macros.rs
+++ b/src/librustc_resolve/macros.rs
@@ -172,10 +172,13 @@ impl<'a> Resolver<'a> {
 
         let mut def_collector = DefCollector::new(&mut self.definitions);
         def_collector.visit_macro_invoc = Some(visit_macro_invoc);
-        def_collector.with_parent(def_index, |def_collector| if !const_integer {
+        def_collector.with_parent(def_index, |def_collector| {
+            if const_integer {
+                if let Expansion::Expr(ref expr) = *expansion {
+                    def_collector.visit_ast_const_integer(expr);
+                }
+            }
             expansion.visit_with(def_collector)
-        } else if let Expansion::Expr(ref expr) = *expansion {
-            def_collector.visit_ast_const_integer(expr);
         });
     }
 }