# Static rustc_lint_defs::builtin::PROC_MACRO_BACK_COMPAT

source ·

    pub static PROC_MACRO_BACK_COMPAT: &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.

#### §Example

ⓘ

    use time_macros_impl::impl_macros;
    struct Foo;
    impl_macros!(Foo);

This will produce:

    warning: using an old version of `time-macros-impl`
      ::: $DIR/group-compat-hack.rs:27:5
       |
    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 <https://github.com/rust-lang/rust/issues/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)

#### §Explanation

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.