A builtin-macro was defined more than once.
Erroneous code example:
#![allow(unused)]
#![feature(decl_macro)]
#![feature(rustc_attrs)]
#![allow(internal_features)]
fn main () {
#[rustc_builtin_macro]
pub macro test($item:item) {
}
mod inner {
#[rustc_builtin_macro]
pub macro test($item:item) {
}
}
}
ⓘ
To fix the issue, remove the duplicate declaration:
#![allow(unused)]
#![feature(decl_macro)]
#![feature(rustc_attrs)]
#![allow(internal_features)]
fn main () {
#[rustc_builtin_macro]
pub macro test($item:item) {
}
}
In very rare edge cases, this may happen when loading core
or std
twice,
once with check
metadata and once with build
metadata.
For more information, see #75176 .