From d70f91ee97f97db17d1817b4e906e280f44f3459 Mon Sep 17 00:00:00 2001 From: Richard Dodd Date: Tue, 17 Apr 2018 14:16:58 +0100 Subject: [PATCH] Add fix and some docs --- src/cargo/core/compiler/context/mod.rs | 2 ++ src/cargo/core/compiler/context/unit_dependencies.rs | 2 +- src/cargo/core/resolver/mod.rs | 2 +- src/cargo/ops/cargo_compile.rs | 2 ++ src/cargo/ops/cargo_doc.rs | 2 -- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/cargo/core/compiler/context/mod.rs b/src/cargo/core/compiler/context/mod.rs index 2d317f8c1..64e70e882 100644 --- a/src/cargo/core/compiler/context/mod.rs +++ b/src/cargo/core/compiler/context/mod.rs @@ -450,6 +450,8 @@ impl<'a, 'cfg> Context<'a, 'cfg> { self.unit_dependencies[unit].clone() } + /// Whether a dependency should be compiled for the host or target platform, + /// specified by `Kind`. fn dep_platform_activated(&self, dep: &Dependency, kind: Kind) -> bool { // If this dependency is only available for certain platforms, // make sure we're only enabling it for that platform. diff --git a/src/cargo/core/compiler/context/unit_dependencies.rs b/src/cargo/core/compiler/context/unit_dependencies.rs index d68037b55..fad946b97 100644 --- a/src/cargo/core/compiler/context/unit_dependencies.rs +++ b/src/cargo/core/compiler/context/unit_dependencies.rs @@ -209,7 +209,7 @@ fn compute_deps_doc<'a, 'cfg>( unit.pkg .dependencies() .iter() - .filter(|d| d.name() == dep.name()) + .filter(|d| d.name() == dep.name() && d.version_req().matches(dep.version())) .any(|dep| match dep.kind() { DepKind::Normal => cx.dep_platform_activated(dep, unit.kind), _ => false, diff --git a/src/cargo/core/resolver/mod.rs b/src/cargo/core/resolver/mod.rs index d40afddb6..8db1a74e9 100644 --- a/src/cargo/core/resolver/mod.rs +++ b/src/cargo/core/resolver/mod.rs @@ -68,7 +68,7 @@ use self::types::{RcVecIter, RegistryQueryer}; pub use self::encode::{EncodableDependency, EncodablePackageId, EncodableResolve}; pub use self::encode::{Metadata, WorkspaceResolve}; -pub use self::resolve::Resolve; +pub use self::resolve::{Resolve, Deps, DepsNotReplaced}; pub use self::types::Method; mod context; diff --git a/src/cargo/ops/cargo_compile.rs b/src/cargo/ops/cargo_compile.rs index 8a2d75980..4f77c9974 100644 --- a/src/cargo/ops/cargo_compile.rs +++ b/src/cargo/ops/cargo_compile.rs @@ -199,6 +199,8 @@ pub fn compile<'a>( compile_with_exec(ws, options, Arc::new(DefaultExecutor)) } +/// Like `compile` but allows specifing a custom `Executor` that will be able to intercept build +/// calls and add custom logic. `compile` uses `DefaultExecutor` which just passes calls through. pub fn compile_with_exec<'a>( ws: &Workspace<'a>, options: &CompileOptions<'a>, diff --git a/src/cargo/ops/cargo_doc.rs b/src/cargo/ops/cargo_doc.rs index 3f2c93e88..ed71ddc2a 100644 --- a/src/cargo/ops/cargo_doc.rs +++ b/src/cargo/ops/cargo_doc.rs @@ -39,7 +39,6 @@ pub fn doc(ws: &Workspace, options: &DocOptions) -> CargoResult<()> { let mut lib_names = HashMap::new(); let mut bin_names = HashMap::new(); - //println!("{:#?}", pkgs); for package in &pkgs { for target in package.targets().iter().filter(|t| t.documented()) { if target.is_lib() { @@ -67,7 +66,6 @@ pub fn doc(ws: &Workspace, options: &DocOptions) -> CargoResult<()> { } ops::compile(ws, &options.compile_opts)?; - //println!("Made it!"); if options.open_result { let name = if pkgs.len() > 1 { -- 2.30.2