Static rustc_lint::builtin::PROC_MACRO_BACK_COMPAT

source ·
pub static PROC_MACRO_BACK_COMPAT: &'static Lint
Expand description

The proc_macro_back_compat lint detects uses of old versions of certain proc-macro crates, which have hardcoded workarounds in the compiler.


use time_macros_impl::impl_macros;
struct Foo;

This will produce:

warning: using an old version of `time-macros-impl`
  ::: $DIR/
LL |     impl_macros!(Foo);
   |     ------------------ in this macro invocation
   = note: `#[warn(proc_macro_back_compat)]` on by default
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #83125 <>
   = note: the `time-macros-impl` crate will stop compiling in futures version of Rust. Please update to the latest version of the `time` crate to avoid breakage
   = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)


Eventually, the backwards-compatibility hacks present in the compiler will be removed, causing older versions of certain crates to stop compiling. This is a future-incompatible lint to ease the transition to an error. See issue #83125 for more details.