Error code E0773

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) { /* compiler built-in */ } mod inner { #[rustc_builtin_macro] pub macro test($item:item) { /* compiler built-in */ } } }

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) { /* compiler built-in */ } }

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.