#![crate_type = "lib"] #![feature(extern_item_impls)] // `eii` expands to, among other things, `macro eii() {}`. // If we have two eiis named the same thing, we have a duplicate definition // for that macro. The compiler happily continues compiling on duplicate // definitions though, to emit as many diagnostics as possible. // However, in the case of eiis, this can break the assumption that every // eii has only one default implementation, since the default for both eiis will // name resolve to the same eii definiton (since the other definition was duplicate) // This test tests for the previously-ICE that occurred when this assumption // (of 1 default) was broken which was reported in #149982. #[eii(eii1)] fn a() {} #[eii(eii1)] //~^ ERROR the name `eii1` is defined multiple times fn b() {}