Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Commit a2f6ea4

Browse files
committed
Update cargo
1 parent 78a36bd commit a2f6ea4

File tree

7 files changed

+54
-23
lines changed

7 files changed

+54
-23
lines changed

Cargo.lock

Lines changed: 28 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ rls-vfs = "0.8"
3030
rls-ipc = { version = "0.1.0", path = "rls-ipc", optional = true }
3131

3232
anyhow = "1.0.26"
33-
cargo = { git = "https://github.com/rust-lang/cargo", rev = "970bc67c3775781b9708c8a36893576b9459c64a" }
33+
cargo = { git = "https://github.com/rust-lang/cargo", rev = "58a961314437258065e23cb6316dfc121d96fb71" }
34+
cargo-util = { git = "https://github.com/rust-lang/cargo", rev = "58a961314437258065e23cb6316dfc121d96fb71" }
3435
cargo_metadata = "0.8"
3536
clippy_lints = { git = "https://github.com/rust-lang/rust-clippy", rev = "7ea7cd165ad6705603852771bf82cc2fd6560db5", optional = true }
3637
env_logger = "0.7"

rls/src/build/cargo.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@ use std::sync::{Arc, Mutex};
1010
use std::thread;
1111

1212
use cargo::core::compiler::{BuildConfig, CompileMode, Context, Executor, Unit};
13-
use cargo::core::resolver::ResolveError;
13+
use cargo::core::resolver::{CliFeatures, ResolveError};
1414
use cargo::core::Package;
1515
use cargo::core::{PackageId, Shell, Target, TargetKind, Verbosity, Workspace};
1616
use cargo::ops::{compile_with_exec, CompileFilter, CompileOptions, Packages};
1717
use cargo::util::{
1818
config as cargo_config, errors::ManifestError, homedir, important_paths, CargoResult,
19-
ConfigValue, ProcessBuilder,
19+
ConfigValue,
2020
};
21+
use cargo_util::ProcessBuilder;
2122
use log::{debug, trace, warn};
2223
use rls_data::Analysis;
2324
use rls_vfs::Vfs;
@@ -229,9 +230,11 @@ fn run_cargo_ws(
229230
opts.target.iter().map(|x| x.into()).collect::<Vec<String>>().as_slice(),
230231
CompileMode::Check { test: cfg_test },
231232
)?,
232-
features: opts.features,
233-
all_features: opts.all_features,
234-
no_default_features: opts.no_default_features,
233+
cli_features: CliFeatures::from_command_line(
234+
&opts.features,
235+
opts.all_features,
236+
!opts.no_default_features,
237+
)?,
235238
..CompileOptions::new(&config, CompileMode::Check { test: cfg_test })?
236239
};
237240

@@ -266,7 +269,7 @@ fn run_cargo_ws(
266269
// directory but its parent) and, when user runs "cargo build" themselves cargo will see
267270
// target/ existing already and won't exclude it from backups. We can work around that by
268271
// attempting to create a backup-excluded target/ ourelves using cargo paths:: machinery.
269-
cargo::util::paths::create_dir_all_excluded_from_backups_atomic(
272+
cargo_util::paths::create_dir_all_excluded_from_backups_atomic(
270273
config.target_dir().unwrap().unwrap().as_path_unlocked().parent().unwrap(),
271274
)?;
272275
let exec = Arc::new(exec) as Arc<dyn Executor>;

rls/src/build/cargo_plan.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use std::sync::Mutex;
2222
use cargo::core::compiler::{CompileKind, CompileMode, Context, Unit};
2323
use cargo::core::profiles::Profile;
2424
use cargo::core::{PackageId, Target, TargetKind};
25-
use cargo::util::ProcessBuilder;
25+
use cargo_util::ProcessBuilder;
2626
use log::{error, trace};
2727

2828
use crate::build::plan::{BuildGraph, BuildKey, JobQueue, WorkStatus};

rls/src/build/external.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use crate::build::plan::{BuildGraph, BuildKey, JobQueue, WorkStatus};
2323
use crate::build::rustc::src_path;
2424
use crate::build::BuildResult;
2525

26-
use cargo::util::{process, ProcessBuilder};
26+
use cargo_util::ProcessBuilder;
2727
use log::trace;
2828
use rls_data::{Analysis, CompilationOptions};
2929
use serde_derive::Deserialize;
@@ -217,7 +217,7 @@ impl BuildKey for Invocation {
217217

218218
impl Invocation {
219219
fn from_raw(build_dir: &Path, raw: RawInvocation) -> Invocation {
220-
let mut command = process(&raw.program);
220+
let mut command = ProcessBuilder::new(&raw.program);
221221
command.args(&raw.args);
222222
for (k, v) in &raw.env {
223223
command.env(&k, v);

rls/src/build/plan.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use std::path::{Path, PathBuf};
1212
use std::sync::mpsc::Sender;
1313
use std::sync::Arc;
1414

15-
use cargo::util::ProcessBuilder;
15+
use cargo_util::ProcessBuilder;
1616
use log::trace;
1717
use serde::{Deserialize, Serialize};
1818

rls/src/project_model.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
use cargo::{
44
core::{
55
registry::PackageRegistry,
6-
resolver::{EncodableResolve, Resolve, ResolveOpts},
6+
resolver::{CliFeatures, EncodableResolve, HasDevUnits, Resolve},
77
PackageId, Workspace,
88
},
99
ops,
@@ -217,5 +217,14 @@ fn resolve_with_prev<'cfg>(
217217
ws: &Workspace<'cfg>,
218218
prev: Option<&Resolve>,
219219
) -> CargoResult<Resolve> {
220-
ops::resolve_with_previous(registry, ws, &ResolveOpts::everything(), prev, None, &[], true)
220+
ops::resolve_with_previous(
221+
registry,
222+
ws,
223+
&CliFeatures::new_all(true),
224+
HasDevUnits::Yes,
225+
prev,
226+
None,
227+
&[],
228+
true,
229+
)
221230
}

0 commit comments

Comments
 (0)