mirror of
https://github.com/rust-lang/cargo.git
synced 2025-09-28 11:20:36 +00:00
Include lints.rust.unexpected_cfgs.check-cfg
into the fingerprint
This commit is contained in:
parent
3ca2120180
commit
dfb69e6076
@ -80,6 +80,7 @@
|
||||
//! config settings[^5] | ✓ |
|
||||
//! is_std | | ✓
|
||||
//! `[lints]` table[^6] | ✓ |
|
||||
//! `[lints.rust.unexpected_cfgs.check-cfg]` | ✓ |
|
||||
//!
|
||||
//! [^1]: Build script and bin dependencies are not included.
|
||||
//!
|
||||
@ -1420,12 +1421,34 @@ fn calculate_normal(
|
||||
}
|
||||
.to_vec();
|
||||
|
||||
// Include all the args from `[lints.rust.unexpected_cfgs.check-cfg]`
|
||||
//
|
||||
// HACK(#13975): duplicating the lookup logic here until `--check-cfg` is supported
|
||||
// on Cargo's MSRV and we can centralize the logic in `lints_to_rustflags`
|
||||
let mut lint_check_cfg = Vec::new();
|
||||
if let Ok(Some(lints)) = unit.pkg.manifest().resolved_toml().resolved_lints() {
|
||||
if let Some(rust_lints) = lints.get("rust") {
|
||||
if let Some(unexpected_cfgs) = rust_lints.get("unexpected_cfgs") {
|
||||
if let Some(config) = unexpected_cfgs.config() {
|
||||
if let Some(check_cfg) = config.get("check-cfg") {
|
||||
if let Ok(check_cfgs) =
|
||||
toml::Value::try_into::<Vec<String>>(check_cfg.clone())
|
||||
{
|
||||
lint_check_cfg = check_cfgs;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let profile_hash = util::hash_u64((
|
||||
&unit.profile,
|
||||
unit.mode,
|
||||
build_runner.bcx.extra_args_for(unit),
|
||||
build_runner.lto[unit],
|
||||
unit.pkg.manifest().lint_rustflags(),
|
||||
lint_check_cfg,
|
||||
));
|
||||
// Include metadata since it is exposed as environment variables.
|
||||
let m = unit.pkg.manifest().metadata();
|
||||
|
@ -851,8 +851,7 @@ fn config_fingerprint() {
|
||||
.with_stderr_does_not_contain("[..]rustc[..]")
|
||||
.run();
|
||||
|
||||
// checking that changing the `-check-cfg` config does not invalid the fingerprint
|
||||
// FIXME: This should change the fingerprint
|
||||
// checking that changing the `check-cfg` config does invalid the fingerprint
|
||||
p.change_file(
|
||||
"Cargo.toml",
|
||||
r#"
|
||||
@ -867,6 +866,10 @@ fn config_fingerprint() {
|
||||
);
|
||||
|
||||
p.cargo("check -v")
|
||||
.with_stderr_does_not_contain("[..]rustc[..]")
|
||||
// we check that the fingerprint is indeed dirty
|
||||
.with_stderr_contains("[..]Dirty[..]the profile configuration changed")
|
||||
// that cause rustc to be called again with the new check-cfg args
|
||||
.with_stderr_contains(x!("rustc" => "cfg" of "bar"))
|
||||
.with_stderr_contains(x!("rustc" => "cfg" of "foo"))
|
||||
.run();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user