Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
032f407
Merge pull request #2000 from xtqqczze/patch-1
Amanieu Apr 18, 2026
b13b275
Merge ref 'e22c616e4e87' from rust-lang/rust
invalid-email-address Apr 20, 2026
74103ef
Merge pull request #2090 from rust-lang/rustc-pull
sayantn Apr 20, 2026
35f3655
Merge pull request #2089 from sayantn/amx-more
sayantn Apr 21, 2026
87a8ea4
Merge pull request #2078 from heiher/loong-generic-intrinsics
sayantn Apr 23, 2026
292271d
Merge ref '68ffae46b581' from rust-lang/rust
invalid-email-address Apr 26, 2026
d270185
Merge pull request #2092 from folkertdev/rcpc3-pub-unsafe
sayantn Apr 29, 2026
b0fa3bf
Merge ref '045b17737dab' from rust-lang/rust
invalid-email-address May 4, 2026
9d5971d
Merge pull request #2102 from rust-lang/rustc-pull
folkertdev May 5, 2026
2a6ad2e
Merge pull request #2094 from heiher/refine
folkertdev May 5, 2026
bf4d086
Merge pull request #2096 from sayantn/fix-fixupimm
Amanieu May 6, 2026
de75079
Merge pull request #2101 from sayantn/revert-passes
folkertdev May 6, 2026
3fbe374
Auto merge of #156655 - ehuss:disable-rust-analyzer-llvm-21, r=Jonath…
bors May 17, 2026
0c2b4d5
Auto merge of #149696 - jnodorp:clarify-utf16-errors, r=SimonSapin
bors May 18, 2026
043a1b7
Auto merge of #156228 - Bryanskiy:eff_vis_iter_late, r=petrochenkov
bors May 19, 2026
ca90e45
Auto merge of #153640 - Zalathar:subchunk, r=wesleywiser
bors May 19, 2026
9d5273a
Auto merge of #156589 - cuviper:revert-dbg-tearing, r=the8472
bors May 19, 2026
3a811a0
Auto merge of #155307 - Urgau:rustdoc-stabilize-remap-path-prefix, r=…
bors May 21, 2026
e32769d
Auto merge of #152112 - Kobzol:vec-deque-strongly-typed, r=joboet
bors May 22, 2026
c8eaf24
Auto merge of #156900 - folkertdev:stdarch-sync-2026-05-25, r=folkertdev
bors May 25, 2026
4662ce9
Auto merge of #156594 - LimpSquid:stabilize-bool-to-result, r=SimonSapin
bors May 25, 2026
196c190
Auto merge of #156385 - RalfJung:tcp-ports, r=nia-e
bors May 26, 2026
c5434a4
Auto merge of #155678 - aerooneqq:single-owners-query-exp, r=oli-obk
bors May 27, 2026
3308f74
Auto merge of #157037 - tgross35:update-builtins, r=tgross35
bors May 28, 2026
d62283f
Auto merge of #156634 - Paladynee:lib/array-intoiter-spec-clone, r=jo…
bors May 29, 2026
782e24f
Auto merge of #143328 - oli-obk:ty-decl-wf-check, r=cjgillot
bors Jun 5, 2026
bf11377
Make sure in-rust-tree activates sysroot-abi for proc-macro-api
bjorn3 Jun 6, 2026
d6962aa
Rename sysroot-abi feature to in-rust-tree
bjorn3 Jun 6, 2026
dd6e500
Fix compiling proc-macro-srv tests in check mode
bjorn3 Jun 6, 2026
3669de9
Rollup merge of #157251 - lnicola:sync-from-ra, r=lnicola
jhpratt Jun 7, 2026
544c1a6
Rollup merge of #157533 - bjorn3:sync_cg_clif-2026-06-06, r=bjorn3
jhpratt Jun 7, 2026
c317623
Rollup merge of #154742 - Jules-Bertholet:casefold, r=Mark-Simulacrum
jhpratt Jun 7, 2026
5d8ad21
Rollup merge of #155144 - Zalathar:inter-pat, r=Nadrieril
jhpratt Jun 7, 2026
0050d1e
Rollup merge of #156222 - cammeresi:20260505-ro-mod, r=Mark-Simulacrum
jhpratt Jun 7, 2026
2970535
Rollup merge of #157016 - folkertdev:add-tailcc-abi, r=WaffleLapkin
jhpratt Jun 7, 2026
ee0143c
Rollup merge of #157264 - Dnreikronos:fix/method-suggest-trait-extra-…
jhpratt Jun 7, 2026
75fbb07
Rollup merge of #157386 - TaKO8Ki:rustdoc-deprecated-note-links-separ…
jhpratt Jun 7, 2026
63ea690
Rollup merge of #157483 - RalfJung:windows-gnu-tls-leak, r=ChrisDenton
jhpratt Jun 7, 2026
e4bc1c1
Rollup merge of #157488 - jieyouxu:jieyouxu/fix/windows-subsystem-hac…
jhpratt Jun 7, 2026
d4d821a
Rollup merge of #157509 - RalfJung:solaris-file-locks, r=the8472
jhpratt Jun 7, 2026
cb273da
Rollup merge of #157521 - pthariensflame:syncview-as-pin, r=BurntSushi
jhpratt Jun 7, 2026
fcaf648
Rollup merge of #156136 - danieljofficial:move-tests-box, r=Kivooeo
jhpratt Jun 7, 2026
520cbb6
Rollup merge of #156573 - richArved:patch-1, r=Mark-Simulacrum
jhpratt Jun 7, 2026
017d17c
Rollup merge of #156783 - MingweiSamuel:patch-2, r=jhpratt
jhpratt Jun 7, 2026
f0dfc59
Rollup merge of #156840 - asder8215:stabilize_pathbuf_into_string, r=…
jhpratt Jun 7, 2026
5578d1c
Rollup merge of #156936 - Darksonn:no-PinCoerceUnsized-for-UnsafePinn…
jhpratt Jun 7, 2026
3bba2c6
Rollup merge of #157365 - zmodem:revert_assign_guids, r=cuviper
jhpratt Jun 7, 2026
3974137
Rollup merge of #157380 - RalfJung:fence, r=jhpratt
jhpratt Jun 7, 2026
eff53bf
Rollup merge of #157471 - JonathanBrouwer:builtin-map-assertion, r=mejrs
jhpratt Jun 7, 2026
da88c60
Rollup merge of #157485 - GuillaumeGomez:rename-err-to-diag, r=Jonath…
jhpratt Jun 7, 2026
41e00b3
Rollup merge of #157494 - Human9000-bit:queryregionconstrains-as-stru…
jhpratt Jun 7, 2026
d397b25
Rollup merge of #157526 - RalfJung:miri-slow, r=JonathanBrouwer
jhpratt Jun 7, 2026
d8cc641
Rollup merge of #157531 - xonx4l:bump-x86_64-gnu-26.04, r=Kobzol
jhpratt Jun 7, 2026
47301c0
Rollup merge of #157556 - theemathas:btree-append-1.96.0-relnotes, r=…
jhpratt Jun 7, 2026
5935dd5
Auto merge of #157558 - jhpratt:rollup-DWtXTfN, r=jhpratt
bors Jun 7, 2026
fa4f497
Bump peaceiris/actions-gh-pages
lnicola Jun 7, 2026
f1b0fc7
Merge pull request #22538 from lnicola/bump-actions-gh-pages
lnicola Jun 7, 2026
35df119
Prepare for merging from rust-lang/rust
lnicola Jun 7, 2026
c726330
Merge ref '43a4909ee98e' from rust-lang/rust
lnicola Jun 7, 2026
7ea2b25
Merge pull request #22540 from lnicola/sync-from-rust
Veykril Jun 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ jobs:
run: echo "::add-matcher::.github/rust.json"

- name: Test
run: cargo test --features sysroot-abi -p proc-macro-srv -p proc-macro-srv-cli -p proc-macro-api -- --quiet
run: cargo test --features in-rust-tree -p proc-macro-srv -p proc-macro-srv-cli -p proc-macro-api -- --quiet

- name: Check salsa dependency
run: "! (cargo tree -p proc-macro-srv-cli -p proc-macro-srv -p proc-macro-srv-cli -p proc-macro-api -i salsa)"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rustdoc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:

- name: Deploy Docs
if: github.event_name == 'push' && github.repository == 'rust-lang/rust-analyzer' && github.ref == 'refs/heads/master'
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0
uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
Expand Down
2 changes: 1 addition & 1 deletion crates/load-cargo/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ vfs.workspace = true
intern.workspace = true

[features]
in-rust-tree = ["hir-expand/in-rust-tree"]
in-rust-tree = ["hir-expand/in-rust-tree", "proc-macro-api/in-rust-tree"]

[lints]
workspace = true
2 changes: 1 addition & 1 deletion crates/proc-macro-api/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ semver.workspace = true
rayon.workspace = true

[features]
sysroot-abi = ["proc-macro-srv", "proc-macro-srv/sysroot-abi"]
in-rust-tree = ["proc-macro-srv", "proc-macro-srv/in-rust-tree"]
default = []

[lints]
Expand Down
2 changes: 1 addition & 1 deletion crates/proc-macro-api/src/legacy_protocol/msg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@ mod tests {
}

#[test]
#[cfg(feature = "sysroot-abi")]
#[cfg(feature = "in-rust-tree")]
fn test_proc_macro_rpc_works_ts() {
for tt in [
fixture_token_tree_top_many_none,
Expand Down
10 changes: 5 additions & 5 deletions crates/proc-macro-api/src/legacy_protocol/msg/flat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
//! as we don't have bincode in Cargo.toml yet, lets stick with serde_json for
//! the time being.

#[cfg(feature = "sysroot-abi")]
#[cfg(feature = "in-rust-tree")]
use proc_macro_srv::TokenStream;

use std::collections::VecDeque;
Expand Down Expand Up @@ -195,7 +195,7 @@ impl FlatTree {
}
}

#[cfg(feature = "sysroot-abi")]
#[cfg(feature = "in-rust-tree")]
impl FlatTree {
pub fn from_tokenstream(
tokenstream: proc_macro_srv::TokenStream<Span>,
Expand Down Expand Up @@ -591,7 +591,7 @@ impl<'a, T: SpanTransformer, U> Writer<'a, '_, T, U> {
T::token_id_of(self.span_data_table, span)
}

#[cfg(feature = "sysroot-abi")]
#[cfg(feature = "in-rust-tree")]
pub(crate) fn intern(&mut self, text: &'a str) -> u32 {
let table = &mut self.text;
*self.string_table.entry(text.into()).or_insert_with(|| {
Expand All @@ -611,7 +611,7 @@ impl<'a, T: SpanTransformer, U> Writer<'a, '_, T, U> {
}
}

#[cfg(feature = "sysroot-abi")]
#[cfg(feature = "in-rust-tree")]
impl<'a, T: SpanTransformer>
Writer<'a, '_, T, Option<proc_macro_srv::TokenStreamIter<'a, T::Span>>>
{
Expand Down Expand Up @@ -852,7 +852,7 @@ impl<T: SpanTransformer<Span = span::Span>> Reader<'_, T> {
}
}

#[cfg(feature = "sysroot-abi")]
#[cfg(feature = "in-rust-tree")]
impl<T: SpanTransformer> Reader<'_, T> {
pub(crate) fn read_tokenstream(
self,
Expand Down
6 changes: 3 additions & 3 deletions crates/proc-macro-api/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
//! is used to provide basic infrastructure for communication between two
//! processes: Client (RA itself), Server (the external program)

#![cfg_attr(not(feature = "sysroot-abi"), allow(unused_crate_dependencies))]
#![cfg_attr(not(feature = "in-rust-tree"), allow(unused_crate_dependencies))]
#![cfg_attr(
feature = "sysroot-abi",
feature = "in-rust-tree",
feature(proc_macro_internals, proc_macro_diagnostic, proc_macro_span, rustc_private)
)]
#![allow(internal_features, unused_features)]

#[cfg(feature = "sysroot-abi")]
#[cfg(feature = "in-rust-tree")]
extern crate rustc_driver as _;

pub mod bidirectional_protocol;
Expand Down
4 changes: 2 additions & 2 deletions crates/proc-macro-srv-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ proc-macro-test.path = "../proc-macro-srv/proc-macro-test"

[features]
default = []
# default = ["sysroot-abi"]
sysroot-abi = ["proc-macro-srv/sysroot-abi", "proc-macro-api/sysroot-abi"]
# default = ["in-rust-tree"]
in-rust-tree = ["proc-macro-srv/in-rust-tree", "proc-macro-api/in-rust-tree"]


[[bin]]
Expand Down
12 changes: 6 additions & 6 deletions crates/proc-macro-srv-cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ rust-analyzer uses a RPC (via stdio) client-server architecture for procedural m
1. Proc macros are dynamic libraries that can segfault, bringing down the entire process, so running them out of process allows rust-analyzer to recover from fatal errors.
2. Proc macro dylibs are compiled against a specific rustc version and require matching internal APIs to load and execute, as such having this binary shipped as a rustup component allows us to always match the rustc version irrespective of the rust-analyzer version used.

## The `sysroot-abi` Feature
## The `in-rust-tree` Feature

**The `sysroot-abi` feature is required for the binary to actually function.** Without it, the binary will return an error:
**The `in-rust-tree` feature is required for the binary to actually function.** Without it, the binary will return an error:

```
proc-macro-srv-cli needs to be compiled with the `sysroot-abi` feature to function
proc-macro-srv-cli needs to be compiled with the `in-rust-tree` feature to function
```

This feature is necessary because the proc-macro server needs access to unstable rustc internals (`proc_macro_internals`, `proc_macro_diagnostic`, `proc_macro_span`) which are only available on nightly or with `RUSTC_BOOTSTRAP=1`.
Expand All @@ -24,10 +24,10 @@ rust-analyzer is a stable toolchain project though, so the feature flag is used

```bash
# Using nightly toolchain
cargo build -p proc-macro-srv-cli --features sysroot-abi
cargo build -p proc-macro-srv-cli --features in-rust-tree

# Or with RUSTC_BOOTSTRAP on stable
RUSTC_BOOTSTRAP=1 cargo build -p proc-macro-srv-cli --features sysroot-abi
RUSTC_BOOTSTRAP=1 cargo build -p proc-macro-srv-cli --features in-rust-tree
```

### Installing the proc-macro server
Expand All @@ -42,7 +42,7 @@ cargo xtask install --proc-macro-server
## Testing

```bash
cargo test --features sysroot-abi -p proc-macro-srv -p proc-macro-srv-cli -p proc-macro-api
cargo test --features in-rust-tree -p proc-macro-srv -p proc-macro-srv-cli -p proc-macro-api
```

The tests use a test proc macro dylib built by the `proc-macro-test` crate, which compiles a small proc macro implementation during build time.
Expand Down
2 changes: 1 addition & 1 deletion crates/proc-macro-srv-cli/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
//!
//! This module exposes the server main loop and protocol format for integration testing.

#![cfg(feature = "sysroot-abi")]
#![cfg(feature = "in-rust-tree")]
#![feature(rustc_private)]

extern crate rustc_driver as _;
Expand Down
12 changes: 6 additions & 6 deletions crates/proc-macro-srv-cli/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
//! A standalone binary for `proc-macro-srv`.
//! Driver for proc macro server
#![cfg_attr(feature = "sysroot-abi", feature(rustc_private))]
#![cfg_attr(not(feature = "sysroot-abi"), allow(unused_crate_dependencies))]
#![cfg_attr(feature = "in-rust-tree", feature(rustc_private))]
#![cfg_attr(not(feature = "in-rust-tree"), allow(unused_crate_dependencies))]
#![allow(clippy::print_stdout, clippy::print_stderr)]

#[cfg(feature = "sysroot-abi")]
#[cfg(feature = "in-rust-tree")]
extern crate rustc_driver as _;

mod version;

use clap::{Command, ValueEnum};
use proc_macro_api::ProtocolFormat;

#[cfg(feature = "sysroot-abi")]
#[cfg(feature = "in-rust-tree")]
use proc_macro_srv_cli::main_loop::run;

fn main() -> std::io::Result<()> {
Expand Down Expand Up @@ -91,15 +91,15 @@ impl ValueEnum for ProtocolFormatArg {
}
}

#[cfg(not(feature = "sysroot-abi"))]
#[cfg(not(feature = "in-rust-tree"))]
fn run(
_: &mut std::io::BufReader<std::io::Stdin>,
_: &mut std::io::Stdout,
_: ProtocolFormat,
) -> std::io::Result<()> {
Err(std::io::Error::new(
std::io::ErrorKind::Unsupported,
"proc-macro-srv-cli needs to be compiled with the `sysroot-abi` feature to function"
"proc-macro-srv-cli needs to be compiled with the `in-rust-tree` feature to function"
.to_owned(),
))
}
2 changes: 1 addition & 1 deletion crates/proc-macro-srv-cli/tests/bidirectional_postcard.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![cfg(feature = "sysroot-abi")]
#![cfg(feature = "in-rust-tree")]
#![feature(rustc_private)]

extern crate rustc_driver as _;
Expand Down
8 changes: 6 additions & 2 deletions crates/proc-macro-srv-cli/tests/common/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,11 @@ pub(crate) fn proc_macro_test_dylib_path() -> Utf8PathBuf {
path.into()
}

fn make_ctx() -> SyntaxContext {
// SAFETY: Tests do not use a Database, so this won't ever be used within salsa.
unsafe { SyntaxContext::from_u32(0) }
}

/// Creates a simple empty token tree suitable for testing.
pub(crate) fn create_empty_token_tree(
version: u32,
Expand All @@ -144,8 +149,7 @@ pub(crate) fn create_empty_token_tree(
file_id: EditionedFileId::new(FileId::from_raw(0), Edition::CURRENT),
ast_id: span::ROOT_ERASED_FILE_AST_ID,
};
let span =
Span { range: TextRange::empty(0.into()), anchor, ctx: SyntaxContext::from_u32_safe(0) };
let span = Span { range: TextRange::empty(0.into()), anchor, ctx: make_ctx() };

let builder = TopSubtreeBuilder::new(Delimiter {
open: span,
Expand Down
2 changes: 1 addition & 1 deletion crates/proc-macro-srv-cli/tests/legacy_json.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//! These tests exercise the full client-server RPC procedure using in-memory
//! channels without needing to spawn the actual server and client processes.

#![cfg(feature = "sysroot-abi")]
#![cfg(feature = "in-rust-tree")]
#![feature(rustc_private)]

extern crate rustc_driver as _;
Expand Down
4 changes: 2 additions & 2 deletions crates/proc-macro-srv/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ proc-macro-test.path = "./proc-macro-test"

[features]
default = []
# default = ["sysroot-abi"]
sysroot-abi = []
# default = ["in-rust-tree"]
in-rust-tree = []

[lints]
workspace = true
Expand Down
2 changes: 1 addition & 1 deletion crates/proc-macro-srv/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
//! * We use `tt` for proc-macro `TokenStream` server, it is easier to manipulate and interact with
//! RA than `proc-macro2` token stream.

#![cfg(feature = "sysroot-abi")]
#![cfg(feature = "in-rust-tree")]
#![feature(proc_macro_internals, proc_macro_diagnostic, proc_macro_span, rustc_private)]
#![expect(unreachable_pub, internal_features, clippy::disallowed_types, clippy::print_stderr)]
#![allow(unused_features, unused_crate_dependencies)]
Expand Down
13 changes: 9 additions & 4 deletions crates/proc-macro-srv/src/tests/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ use crate::{
token_stream::TokenStream,
};

fn make_ctx() -> SyntaxContext {
// SAFETY: Tests do not use a Database, so this won't ever be used within salsa.
unsafe { SyntaxContext::from_u32(0) }
}

fn parse_string(call_site: SpanId, src: &str) -> TokenStream<SpanId> {
TokenStream::from_str(src, call_site).unwrap()
}
Expand Down Expand Up @@ -86,15 +91,15 @@ fn assert_expand_impl(
file_id: EditionedFileId::current_edition(FileId::from_raw(41)),
ast_id: ROOT_ERASED_FILE_AST_ID,
},
ctx: SyntaxContext::from_u32_safe(0),
ctx: make_ctx(),
};
let call_site = Span {
range: TextRange::new(0.into(), 100.into()),
anchor: SpanAnchor {
file_id: EditionedFileId::current_edition(FileId::from_raw(42)),
ast_id: ROOT_ERASED_FILE_AST_ID,
},
ctx: SyntaxContext::from_u32_safe(0),
ctx: make_ctx(),
};
let mixed_site = call_site;

Expand Down Expand Up @@ -189,15 +194,15 @@ pub fn assert_expand_with_callback(
file_id: EditionedFileId::current_edition(FileId::from_raw(41)),
ast_id: ROOT_ERASED_FILE_AST_ID,
},
ctx: SyntaxContext::from_u32_safe(0),
ctx: make_ctx(),
};
let call_site = Span {
range: TextRange::new(0.into(), 100.into()),
anchor: SpanAnchor {
file_id: EditionedFileId::current_edition(FileId::from_raw(42)),
ast_id: ROOT_ERASED_FILE_AST_ID,
},
ctx: SyntaxContext::from_u32_safe(0),
ctx: make_ctx(),
};
let mixed_site = call_site;

Expand Down
1 change: 1 addition & 0 deletions crates/rust-analyzer/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ in-rust-tree = [
"ide/in-rust-tree",
"load-cargo/in-rust-tree",
"parser/in-rust-tree",
"proc-macro-api/in-rust-tree",
"syntax/in-rust-tree",
]
dhat = ["dep:dhat"]
Expand Down
7 changes: 0 additions & 7 deletions crates/span/src/hygiene.rs
Original file line number Diff line number Diff line change
Expand Up @@ -460,13 +460,6 @@ impl SyntaxContext {
pub const unsafe fn from_u32(u32: u32) -> Self {
Self(u32)
}

/// Alternative to [`from_u32`] that is safe to call.
///
/// The split exists to keep API parity.
pub const fn from_u32_safe(u32: u32) -> Self {
Self(u32)
}
}

/// A property of a macro expansion that determines how identifiers
Expand Down
2 changes: 1 addition & 1 deletion rust-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ba0949ab745985a442e274ba52e8fb348cb0c662
43a4909ee98ed4d006d9d773f5d94dc58e34f846
2 changes: 1 addition & 1 deletion xtask/src/install.rs
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ fn install_proc_macro_server(sh: &Shell, opts: ProcMacroServerOpt) -> anyhow::Re

let mut cmd = cmd!(
sh,
"cargo install --path crates/proc-macro-srv-cli --profile={profile} --locked --force --features sysroot-abi"
"cargo install --path crates/proc-macro-srv-cli --profile={profile} --locked --force --features in-rust-tree"
);
if std::env::var_os("RUSTUP_TOOLCHAIN").is_none() {
cmd = cmd.env("RUSTUP_TOOLCHAIN", "nightly");
Expand Down