-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
rust-analyzer --stage=1 mixes incompatible proc_macro server and client #139810
Copy link
Copy link
Closed
Closed
Copy link
Labels
A-bootstrap-stagesArea: issues with the meaning of stage numbersArea: issues with the meaning of stage numbersC-bugCategory: This is a bug.Category: This is a bug.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-rust-analyzerRelevant to the rust-analyzer team, which will review and decide on the PR/issue.Relevant to the rust-analyzer team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
A-bootstrap-stagesArea: issues with the meaning of stage numbersArea: issues with the meaning of stage numbersC-bugCategory: This is a bug.Category: This is a bug.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-rust-analyzerRelevant to the rust-analyzer team, which will review and decide on the PR/issue.Relevant to the rust-analyzer team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Looks like
rust-analyzerbuilt with--stage=1will 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