From b99fb55f0fcbaabf96c1a56b0d905f41d4fe33a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adolfo=20Ochagav=C3=ADa?= Date: Fri, 12 Dec 2014 17:34:28 +0100 Subject: [PATCH 1/2] Fix #19734 (ICE) --- src/libsyntax/ext/expand.rs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index a697d332d16..414241ee2bf 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -1026,16 +1026,17 @@ fn expand_method(m: P, fld: &mut MacroExpander) -> SmallVector methods, + match maybe_new_methods { + Some(methods) => { + // expand again if necessary + let new_methods = methods.into_iter() + .flat_map(|m| fld.fold_method(m).into_iter()) + .collect(); + fld.cx.bt_pop(); + new_methods + } None => SmallVector::zero() - }; - - // expand again if necessary - let new_methods = new_methods.into_iter() - .flat_map(|m| fld.fold_method(m).into_iter()).collect(); - fld.cx.bt_pop(); - new_methods + } } }) } From 8788cb05c23c1d14ad22e5046bf3d3d621cf401e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adolfo=20Ochagav=C3=ADa?= Date: Fri, 12 Dec 2014 17:40:32 +0100 Subject: [PATCH 2/2] Add test for issue #19734 --- src/test/compile-fail/issue-19734.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/test/compile-fail/issue-19734.rs diff --git a/src/test/compile-fail/issue-19734.rs b/src/test/compile-fail/issue-19734.rs new file mode 100644 index 00000000000..cee92cae2aa --- /dev/null +++ b/src/test/compile-fail/issue-19734.rs @@ -0,0 +1,15 @@ +// Copyright 2012 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +fn main() {} + +impl Type { + undef!() //~ ERROR macro undefined: 'undef!' +}