diff options
| author | Nicholas Nethercote <nnethercote@mozilla.com> | 2016-10-04 16:36:14 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <nnethercote@mozilla.com> | 2016-10-04 16:41:53 +1100 |
| commit | 78579034ec7de62d70b4c0d5796aaabb5cb13ceb (patch) | |
| tree | 23dd90ac362770a745baefd2ed0720d6e3e251a4 | |
| parent | 7a26aeca77bcf334747eddb630e3b9475149b7f5 (diff) | |
Fix an ICE in BuildReducedGraphVisitor::visit_trait_item.
This ICE occurs in the futures-rs-test-all benchmark in rustc-benchmarks.
| -rw-r--r-- | src/librustc_resolve/build_reduced_graph.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs index 2bf517600b7..0a0d2e4347e 100644 --- a/src/librustc_resolve/build_reduced_graph.rs +++ b/src/librustc_resolve/build_reduced_graph.rs @@ -605,6 +605,10 @@ impl<'a, 'b> Visitor for BuildReducedGraphVisitor<'a, 'b> { let parent = self.resolver.current_module; let def_id = parent.def_id().unwrap(); + if let TraitItemKind::Macro(_) = item.node { + return self.visit_invoc(item.id); + } + // Add the item to the trait info. let item_def_id = self.resolver.definitions.local_def_id(item.id); let mut is_static_method = false; @@ -615,7 +619,7 @@ impl<'a, 'b> Visitor for BuildReducedGraphVisitor<'a, 'b> { (Def::Method(item_def_id), ValueNS) } TraitItemKind::Type(..) => (Def::AssociatedTy(item_def_id), TypeNS), - TraitItemKind::Macro(_) => return self.visit_invoc(item.id), + TraitItemKind::Macro(_) => bug!(), // handled above }; self.resolver.trait_item_map.insert((item.ident.name, def_id), is_static_method); |
