New compiler warning with Rust 1.97
warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
The following warnings were discovered during the build. These warnings are an
indication that the packages contain code that will become an error in a
future release of Rust. These warnings typically cover changes to close
soundness problems, unintended or undocumented behavior, or critical problems
that cannot be fixed in a backwards-compatible fashion, and are not expected
to be in wide use.
Each warning should contain a link for more information on what the warning
means and how to resolve it.
to solve this problem, you can try the following approaches:
- ensure the maintainers know of this problem (e.g. creating a bug report if needed)
or even helping with a fix (e.g. by creating a pull request)
- proc-macro-error2@2.0.1
- repository: https://github.com/GnomedDev/proc-macro-error-2
- detailed warning command: `cargo report future-incompatibilities --id 1 --package proc-macro-error2@2.0.1`
- use your own version of the dependency with the `[patch]` section in `Cargo.toml`
For more information, see:
https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#the-patch-section
The package `proc-macro-error2 v2.0.1` currently triggers the following future incompatibility lints:
> warning[E0365]: extern crate `proc_macro` is private and cannot be re-exported
> --> /Users/davis/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro-error2-2.0.1/src/lib.rs:494:13
> |
> 494 | pub use proc_macro;
> | ^^^^^^^^^^
> |
> = 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 #127909 <https://github.com/rust-lang/rust/issues/127909>
> help: consider making the `extern crate` item publicly accessible
> |
> 277 | pub extern crate proc_macro;
> | +++
>
It looks like we only use proc-macro-error2 transitively through biome, in particular biome_markup and biome_diagnostics_macros. But that's not going to be easy to fix. We are very far behind biome main right now, and they have done a number of breaking changes that are going to make it hard for us to catch up. We'll have to make changes in Air to catch up, then also adapt in Ark.
Biome itself hasn't even made a fix for themselves yet because they are still on rust 1.96 and haven't seen this warning yet https://github.com/biomejs/biome/blob/72d309b655cee70473e20b061f5a45112139688c/crates/biome_markup/Cargo.toml#L21.
It won't be a super straightforward patch either, because proc-macro-error2 is now officially unmaintained. It won't be receiving an update to patch this 🙄. They will have to switch to a new crate.
https://crates.io/crates/proc-macro-error2
https://rustsec.org/advisories/RUSTSEC-2026-0173.html
So that's all fun. I'd advise:
- Drop down to Rust 1.96 again to avoid the warning for now
- I'll eventually work on getting Air/Ark synced up with Biome again
- By then Biome will have probably required Rust 1.97, run into this, and made a patch that we can consume
New compiler warning with Rust 1.97
It looks like we only use proc-macro-error2 transitively through biome, in particular biome_markup and biome_diagnostics_macros. But that's not going to be easy to fix. We are very far behind biome
mainright now, and they have done a number of breaking changes that are going to make it hard for us to catch up. We'll have to make changes in Air to catch up, then also adapt in Ark.Biome itself hasn't even made a fix for themselves yet because they are still on rust 1.96 and haven't seen this warning yet https://github.com/biomejs/biome/blob/72d309b655cee70473e20b061f5a45112139688c/crates/biome_markup/Cargo.toml#L21.
It won't be a super straightforward patch either, because proc-macro-error2 is now officially unmaintained. It won't be receiving an update to patch this 🙄. They will have to switch to a new crate.
https://crates.io/crates/proc-macro-error2
https://rustsec.org/advisories/RUSTSEC-2026-0173.html
So that's all fun. I'd advise: