mirror of
https://github.com/rust-lang/cargo.git
synced 2025-10-01 11:30:39 +00:00
fix(base): Support bases in patches in virtual manifests
This bug has been there since #14360
This commit is contained in:
parent
2d23b94a7f
commit
5b8b2ac248
@ -304,7 +304,12 @@ fn normalize_toml(
|
|||||||
lints: None,
|
lints: None,
|
||||||
workspace: original_toml.workspace.clone(),
|
workspace: original_toml.workspace.clone(),
|
||||||
profile: original_toml.profile.clone(),
|
profile: original_toml.profile.clone(),
|
||||||
patch: None,
|
patch: normalize_patch(
|
||||||
|
gctx,
|
||||||
|
original_toml.patch.as_ref(),
|
||||||
|
&workspace_root,
|
||||||
|
features,
|
||||||
|
)?,
|
||||||
replace: original_toml.replace.clone(),
|
replace: original_toml.replace.clone(),
|
||||||
_unused_keys: Default::default(),
|
_unused_keys: Default::default(),
|
||||||
};
|
};
|
||||||
@ -483,13 +488,6 @@ fn normalize_toml(
|
|||||||
}
|
}
|
||||||
normalized_toml.target = (!normalized_target.is_empty()).then_some(normalized_target);
|
normalized_toml.target = (!normalized_target.is_empty()).then_some(normalized_target);
|
||||||
|
|
||||||
normalized_toml.patch = normalize_patch(
|
|
||||||
gctx,
|
|
||||||
original_toml.patch.as_ref(),
|
|
||||||
&workspace_root,
|
|
||||||
features,
|
|
||||||
)?;
|
|
||||||
|
|
||||||
let normalized_lints = original_toml
|
let normalized_lints = original_toml
|
||||||
.lints
|
.lints
|
||||||
.clone()
|
.clone()
|
||||||
@ -1733,14 +1731,14 @@ fn to_virtual_manifest(
|
|||||||
root,
|
root,
|
||||||
};
|
};
|
||||||
(
|
(
|
||||||
replace(&original_toml, &mut manifest_ctx)?,
|
replace(&normalized_toml, &mut manifest_ctx)?,
|
||||||
patch(&original_toml, &mut manifest_ctx)?,
|
patch(&normalized_toml, &mut manifest_ctx)?,
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
if let Some(profiles) = &original_toml.profile {
|
if let Some(profiles) = &normalized_toml.profile {
|
||||||
validate_profiles(profiles, gctx.cli_unstable(), &features, warnings)?;
|
validate_profiles(profiles, gctx.cli_unstable(), &features, warnings)?;
|
||||||
}
|
}
|
||||||
let resolve_behavior = original_toml
|
let resolve_behavior = normalized_toml
|
||||||
.workspace
|
.workspace
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(|ws| ws.resolver.as_deref())
|
.and_then(|ws| ws.resolver.as_deref())
|
||||||
|
@ -3138,18 +3138,9 @@ fn patch_in_virtual_with_base() {
|
|||||||
|
|
||||||
p.cargo("tree")
|
p.cargo("tree")
|
||||||
.masquerade_as_nightly_cargo(&["path-bases"])
|
.masquerade_as_nightly_cargo(&["path-bases"])
|
||||||
.with_status(101)
|
.with_stdout_data(str![[r#"
|
||||||
.with_stderr_data(str![[r#"
|
foo v0.5.0 ([ROOT]/foo/foo)
|
||||||
[ERROR] failed to load source for dependency `bar`
|
└── bar v0.5.0 ([ROOT]/bar)
|
||||||
|
|
||||||
Caused by:
|
|
||||||
Unable to update [ROOT]/foo/bar
|
|
||||||
|
|
||||||
Caused by:
|
|
||||||
failed to read `[ROOT]/foo/bar/Cargo.toml`
|
|
||||||
|
|
||||||
Caused by:
|
|
||||||
[NOT_FOUND]
|
|
||||||
|
|
||||||
"#]])
|
"#]])
|
||||||
.run();
|
.run();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user