rust-analyzer --stage=1 mixes incompatible proc_macro server and client #139810
Labels
A-bootstrap-stages
Area: issues with the meaning of stage numbers
C-bug
Category: This is a bug.
T-bootstrap
Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
T-rust-analyzer
Relevant to the rust-analyzer team, which will review and decide on the PR/issue.
Looks like
rust-analyzer
built with--stage=1
will use the proc_macro server from the checkout, but the proc_macro client from beta (stage 0). This "works" "fine" as long as we don't make any changes to the proc macro bridge. But it breaks terribly when we make any changes to the proc_macro interface.To reproduce:
Make some backwards-incomplatible change to the proc macro bridge communication protocol. For example, in
library/proc_macro/src/bridge/rpc.rs
:And then run
Everything panics.
(With
--stage=2
, it works fine.)This is a problem, because we run the r-a tests at --stage=1 as part of CI. This means we currently cannot make any changes to the proc macro bridge (without purposely breaking and disabling tests).
Discovered while trying to merge #139671
The text was updated successfully, but these errors were encountered: