// Copyright 2014 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. // forbid-output: in expansion of #![feature(macro_rules)] macro_rules! make_method ( ($name:ident) => ( fn $name(&self) { } )) struct S; impl S { // We had a bug where these wouldn't clean up macro backtrace frames. make_method!(foo1) make_method!(foo2) make_method!(foo3) make_method!(foo4) make_method!(foo5) make_method!(foo6) make_method!(foo7) make_method!(foo8) // Cause an error. It shouldn't have any macro backtrace frames. fn bar(&self) { } fn bar(&self) { } //~ ERROR duplicate definition } fn main() { }