diff --git a/xtask/src/install.rs b/xtask/src/install.rs index bddce0f027..a803b4e943 100644 --- a/xtask/src/install.rs +++ b/xtask/src/install.rs @@ -44,8 +44,11 @@ pub(crate) struct ServerOpt { impl ServerOpt { fn to_features(&self) -> Vec<&'static str> { - let mut features = Vec::new(); - features.extend(self.malloc.to_features()); + let malloc_features = self.malloc.to_features(); + let mut features = Vec::with_capacity( + malloc_features.len() + if self.force_always_assert { 2 } else { 0 }, + ); + features.extend(malloc_features); if self.force_always_assert { features.extend(["--features", "force-always-assert"]); } @@ -153,7 +156,7 @@ fn install_server(sh: &Shell, opts: ServerOpt) -> anyhow::Result<()> { let mut install_cmd = cmd!( sh, - "cargo install --path crates/rust-analyzer --profile={profile} --locked --force --features force-always-assert {features...}" + "cargo install --path crates/rust-analyzer --profile={profile} --locked --force {features...}" ); if let Some(train_crate) = opts.pgo {