From e1c16ac3bd193f8b57a7aa89be9300b29f3ba726 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 3 Aug 2026 08:51:28 -0500 Subject: [PATCH 1/4] test: Adjust bin case --- tests/testsuite/build.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/testsuite/build.rs b/tests/testsuite/build.rs index 0f2d76d55a0..d911e09de0c 100644 --- a/tests/testsuite/build.rs +++ b/tests/testsuite/build.rs @@ -645,7 +645,7 @@ fn cargo_compile_with_bin_and_crate_type() { edition = "2015" [[bin]] - name = "the_foo_bin" + name = "the-foo-bin" path = "src/foo.rs" crate-type = ["cdylib", "rlib"] "#, @@ -656,7 +656,7 @@ fn cargo_compile_with_bin_and_crate_type() { p.cargo("build") .with_status(101) .with_stderr_data(str![[r#" -[ERROR] Cargo.toml: the target `the_foo_bin` is a binary and can't have any crate-types set (currently "cdylib, rlib") +[ERROR] Cargo.toml: the target `the-foo-bin` is a binary and can't have any crate-types set (currently "cdylib, rlib") [ERROR] could not parse `foo` (manifest) due to 1 previous error "#]]) @@ -731,7 +731,7 @@ fn cargo_compile_with_bin_and_proc() { edition = "2015" [[bin]] - name = "the_foo_bin" + name = "the-foo-bin" path = "src/foo.rs" proc-macro = true "#, @@ -742,7 +742,7 @@ fn cargo_compile_with_bin_and_proc() { p.cargo("build") .with_status(101) .with_stderr_data(str![[r#" -[ERROR] Cargo.toml: the target `the_foo_bin` is a binary and can't have `proc-macro` set `true` +[ERROR] Cargo.toml: the target `the-foo-bin` is a binary and can't have `proc-macro` set `true` [ERROR] could not parse `foo` (manifest) due to 1 previous error "#]]) From 801ed754f110483b4d4f4e979bae68daee8b55bf Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 3 Aug 2026 15:47:57 -0500 Subject: [PATCH 2/4] test: Be more resilient against diagnostic messages --- tests/build-std/main.rs | 4 +-- tests/testsuite/cache_messages.rs | 53 ------------------------------- 2 files changed, 2 insertions(+), 55 deletions(-) diff --git a/tests/build-std/main.rs b/tests/build-std/main.rs index 4d46bfa4322..ce6aac69465 100644 --- a/tests/build-std/main.rs +++ b/tests/build-std/main.rs @@ -445,7 +445,7 @@ fn build_std_does_not_warn_about_implicit_std_deps() { "Cargo.toml", r#" [package] - name = "buildstd_test" + name = "buildstd-test" version = "0.1.0" edition = "2021" @@ -473,7 +473,7 @@ fn build_std_does_not_warn_about_implicit_std_deps() { .with_stderr_data( str![[r#" [WARNING] extern crate `bar` is unused in crate `buildstd_test` -[WARNING] `buildstd_test` (bin "buildstd_test") generated 1 warning +[WARNING] `buildstd-test` (bin "buildstd-test") generated 1 warning ... "#]] .unordered(), diff --git a/tests/testsuite/cache_messages.rs b/tests/testsuite/cache_messages.rs index 8ec807aae8e..db54eefe0bf 100644 --- a/tests/testsuite/cache_messages.rs +++ b/tests/testsuite/cache_messages.rs @@ -163,11 +163,6 @@ fn clears_cache_after_fix() { "#]]) .run(); - assert_eq!( - p.glob("target/debug/build/foo/*/fingerprint/output-*") - .count(), - 0 - ); // And again, check the cache is correct. p.cargo("check") @@ -277,54 +272,6 @@ fn very_verbose() { .run(); } -#[cargo_test] -fn doesnt_create_extra_files() { - // Ensure it doesn't create `output` files when not needed. - Package::new("dep", "1.0.0") - .file("src/lib.rs", "fn unused() {}") - .publish(); - - let p = project() - .file( - "Cargo.toml", - r#" - [package] - name = "foo" - version = "0.1.0" - edition = "2015" - - [dependencies] - dep = "1.0" - "#, - ) - .file("src/lib.rs", "") - .file("src/main.rs", "fn main() {}") - .build(); - - p.cargo("check").run(); - - assert_eq!( - p.glob("target/debug/build/foo/*/fingerprint/output-*") - .count(), - 0 - ); - assert_eq!( - p.glob("target/debug/build/foo/*/fingerprint/dep-*/output-*") - .count(), - 0 - ); - if is_coarse_mtime() { - sleep_ms(1000); - } - p.change_file("src/lib.rs", "fn unused() {}"); - p.cargo("check").run(); - assert_eq!( - p.glob("target/debug/build/foo/*/fingerprint/output-*") - .count(), - 1 - ); -} - #[cargo_test] fn replay_non_json() { // Handles non-json output. From 4729694de69a1e139dd32c06758dbb97eb95839e Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 4 Aug 2026 10:43:16 -0500 Subject: [PATCH 3/4] test(build-std): Be more resilienbt against out changes This test is trying to assert for presence and absence but can't use exhaustive output because it is dependent on the users build environment. This makes it so we can check exactly what we are looking for. --- tests/build-std/main.rs | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/tests/build-std/main.rs b/tests/build-std/main.rs index ce6aac69465..6753ef84264 100644 --- a/tests/build-std/main.rs +++ b/tests/build-std/main.rs @@ -25,6 +25,7 @@ use cargo_test_support::basic_manifest; use cargo_test_support::paths; use cargo_test_support::project; use cargo_test_support::rustc_host; +use cargo_test_support::snapbox::assert_data_eq; use cargo_test_support::str; use cargo_test_support::target_spec_json; use cargo_test_support::{Project, prelude::*}; @@ -466,19 +467,24 @@ fn build_std_does_not_warn_about_implicit_std_deps() { .file("bar/src/lib.rs", "") .build(); - p.cargo("build") + let output = p + .cargo("build") .build_std() .target_host() .env("RUSTFLAGS", "-W unused-crate-dependencies") - .with_stderr_data( - str![[r#" -[WARNING] extern crate `bar` is unused in crate `buildstd_test` -[WARNING] `buildstd-test` (bin "buildstd-test") generated 1 warning -... -"#]] - .unordered(), - ) .run(); + let stderr = String::from_utf8(output.stderr).unwrap(); + println!("{stderr}"); + let mut unused_warnings = stderr + .lines() + .filter(|l| l.contains("is unused in crate")) + .collect::>(); + unused_warnings.sort(); + let unused_warnings = unused_warnings.join("\n"); + assert_data_eq!( + unused_warnings, + str!["warning: extern crate `bar` is unused in crate `buildstd_test`"] + ); } #[cargo_test(build_std_real)] From dd5ab8d7727543827ea24a4453d9e8bc97b20a54 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Sat, 1 Aug 2026 15:44:47 -0500 Subject: [PATCH 4/4] feat(diag): Stabilize cargo-lints Fixes #12235 --- crates/xtask-lint-docs/src/main.rs | 6 +- doc/book/src/guide/build-performance.md | 13 +- doc/book/src/reference/lints.md | 4 - doc/book/src/reference/unstable.md | 36 +++++- src/compiler/job_queue/mod.rs | 16 +-- src/compiler/mod.rs | 15 +-- src/diagnostics/passes.rs | 110 ++++++++-------- src/workspace/features.rs | 5 +- src/workspace/parser/mod.rs | 42 +----- tests/build-std/main.rs | 14 +- tests/testsuite/alt_registry.rs | 42 ++++++ tests/testsuite/artifact_dep.rs | 48 +++++++ tests/testsuite/bad_config.rs | 39 ++++++ tests/testsuite/build.rs | 35 ++++- tests/testsuite/build_dir.rs | 32 ++++- .../testsuite/build_dir_fine_grain_locking.rs | 25 ++++ tests/testsuite/build_dir_legacy.rs | 24 ++++ tests/testsuite/build_script.rs | 91 ++++++++++++- .../testsuite/build_script_extra_link_arg.rs | 3 + tests/testsuite/cache_messages.rs | 3 + tests/testsuite/cargo/z_help/stdout.term.svg | 86 ++++++------- tests/testsuite/cargo_features.rs | 6 + tests/testsuite/cfg.rs | 18 +++ tests/testsuite/check.rs | 12 ++ tests/testsuite/clean.rs | 6 + tests/testsuite/clean_legacy_layout.rs | 6 + tests/testsuite/collisions.rs | 6 + tests/testsuite/credential_process.rs | 6 + tests/testsuite/dep_info.rs | 12 ++ tests/testsuite/directory.rs | 9 ++ tests/testsuite/doc.rs | 6 + tests/testsuite/feature_unification.rs | 36 ++++++ tests/testsuite/features.rs | 24 ++++ tests/testsuite/features2.rs | 39 ++++++ tests/testsuite/features_namespaced.rs | 15 +++ tests/testsuite/fix.rs | 51 ++++++++ tests/testsuite/freshness.rs | 30 +++++ tests/testsuite/freshness_checksum.rs | 21 +++ tests/testsuite/freshness_mtime.rs | 21 +++ tests/testsuite/future_incompat_report.rs | 9 ++ tests/testsuite/git.rs | 108 ++++++++++++++++ tests/testsuite/global_cache_tracker.rs | 9 ++ tests/testsuite/hints.rs | 30 +++++ .../testsuite/inheritable_workspace_fields.rs | 63 +++++++++ tests/testsuite/install.rs | 11 +- .../lints/blanket_hint_mostly_unused.rs | 25 ++-- tests/testsuite/lints/error/mod.rs | 3 +- tests/testsuite/lints/inherited/mod.rs | 2 - tests/testsuite/lints/manual_readme.rs | 31 +---- .../lints/missing_lints_inheritance.rs | 18 +-- tests/testsuite/lints/mod.rs | 36 +++--- tests/testsuite/lints/non_kebab_case_bins.rs | 13 +- .../lints/non_kebab_case_features.rs | 8 +- .../lints/non_kebab_case_packages.rs | 8 +- .../lints/non_snake_case_features.rs | 8 +- .../lints/non_snake_case_packages.rs | 8 +- tests/testsuite/lints/redundant_homepage.rs | 9 +- .../lints/text_direction_codepoint.rs | 12 +- tests/testsuite/lints/unknown_lints.rs | 9 +- tests/testsuite/lints/unused_dependencies.rs | 105 +++++---------- .../lints/unused_workspace_dependencies.rs | 3 +- .../lints/unused_workspace_package_fields.rs | 3 +- tests/testsuite/lints/warning/mod.rs | 3 +- tests/testsuite/lints_table.rs | 52 ++------ tests/testsuite/local_registry.rs | 3 + tests/testsuite/lockfile_compat.rs | 6 + tests/testsuite/lto.rs | 6 + tests/testsuite/message_format.rs | 2 +- tests/testsuite/metabuild.rs | 3 + tests/testsuite/min_publish_age.rs | 3 + tests/testsuite/offline.rs | 6 + tests/testsuite/package.rs | 84 ++++++++++++ tests/testsuite/package_features.rs | 3 + tests/testsuite/patch.rs | 120 ++++++++++++++++++ tests/testsuite/path.rs | 15 +++ tests/testsuite/paths.rs | 27 ++++ tests/testsuite/pgo.rs | 2 +- tests/testsuite/proc_macro.rs | 9 ++ tests/testsuite/profile_config.rs | 3 + tests/testsuite/profile_custom.rs | 3 + tests/testsuite/profile_overrides.rs | 6 + tests/testsuite/profile_settings.rs | 19 ++- tests/testsuite/pub_priv.rs | 3 + tests/testsuite/publish.rs | 45 +++++++ tests/testsuite/publish_lockfile.rs | 9 ++ tests/testsuite/registry.rs | 108 ++++++++++++++++ tests/testsuite/registry_auth.rs | 3 + tests/testsuite/registry_overlay.rs | 12 ++ tests/testsuite/rename_deps.rs | 3 + tests/testsuite/replace.rs | 27 ++++ tests/testsuite/required_features.rs | 6 + tests/testsuite/run.rs | 4 +- tests/testsuite/rustc.rs | 8 +- tests/testsuite/rustdocflags.rs | 2 +- tests/testsuite/rustflags.rs | 47 +++---- tests/testsuite/script/cargo.rs | 7 + tests/testsuite/source_replacement.rs | 6 + tests/testsuite/test.rs | 3 + tests/testsuite/vendor.rs | 18 +++ tests/testsuite/warn_on_failure.rs | 6 + tests/testsuite/warning_override.rs | 33 +++-- tests/testsuite/weak_dep_features.rs | 12 ++ tests/testsuite/workspaces.rs | 21 +++ 103 files changed, 1805 insertions(+), 497 deletions(-) diff --git a/crates/xtask-lint-docs/src/main.rs b/crates/xtask-lint-docs/src/main.rs index b2265a24a49..a7ce7daf853 100644 --- a/crates/xtask-lint-docs/src/main.rs +++ b/crates/xtask-lint-docs/src/main.rs @@ -45,11 +45,7 @@ fn main() -> anyhow::Result<()> { > > See [the lints section in the Manifest Format > chapter](manifest.md#the-lints-section) to configure lint levels for tools -> such as `rustc` or `clippy`. - -> [!WARNING] -> [Cargo's linting system is unstable](unstable.md#lintscargo) and can only be used on nightly -> toolchains." +> such as `rustc` or `clippy`." )?; writeln!(buf)?; diff --git a/doc/book/src/guide/build-performance.md b/doc/book/src/guide/build-performance.md index 1b4f322d493..e314bcc01d6 100644 --- a/doc/book/src/guide/build-performance.md +++ b/doc/book/src/guide/build-performance.md @@ -151,16 +151,11 @@ Trade-offs: ### Removing unused dependencies -Recommendation: periodically review unused dependencies for removal using: -```console -$ cargo +nightly check -Zcargo-lints --workspace --all-targets -``` -This may have false positives from: -- when a dependency's use is dynamically controlled by a `build.rs` or `RUSTFLAGS` +The [`cargo::unused_dependencies`](../reference/lints.md#unused_dependencies) will identify most unused dependencies with few false positives. -Also, periodically review hidden [`cargo::unused_dependencies`] results: +For everything else, periodically review hidden [`cargo::unused_dependencies`] results: ```console -$ CARGO_LOG=cargo::diagnostics::rules::unused_dependencies=debug cargo +nightly check -Zcargo-lints --workspace --all-targets +$ CARGO_LOG=cargo::diagnostics::rules::unused_dependencies=debug cargo check --workspace --all-targets ``` This will show potential unused dependencies for - registry and git dependencies @@ -174,10 +169,8 @@ it can be easy to miss that a dependency is no longer used and can be removed. Trade-offs: - ✅ Faster full build and link times -- ❌ **Requires using nightly Rust and an [unstable Cargo feature][cargo-lints] when reviewing unused dependencies** - ❌ It takes effort to identify unused dependencies from among the false positives -[cargo-lints]: ../reference/unstable.md#lintscargo [`cargo::unused_dependencies`]: ../reference/lints.md#unused_dependencies [`package.rust-version`]: ../reference/rust-version.md diff --git a/doc/book/src/reference/lints.md b/doc/book/src/reference/lints.md index 6ad0b93813d..103db3b76a4 100644 --- a/doc/book/src/reference/lints.md +++ b/doc/book/src/reference/lints.md @@ -7,10 +7,6 @@ > chapter](manifest.md#the-lints-section) to configure lint levels for tools > such as `rustc` or `clippy`. -> [!WARNING] -> [Cargo's linting system is unstable](unstable.md#lintscargo) and can only be used on nightly -> toolchains. - | Group | Description | Default level | diff --git a/doc/book/src/reference/unstable.md b/doc/book/src/reference/unstable.md index 196ab8d85d3..6a8b19c4467 100644 --- a/doc/book/src/reference/unstable.md +++ b/doc/book/src/reference/unstable.md @@ -114,7 +114,6 @@ Each new feature described below should explain how to use it. * [per-package-target](#per-package-target) --- Sets the `--target` to use for each individual package. * [artifact dependencies](#artifact-dependencies) --- Allow build artifacts to be included into other build artifacts and build them for different targets. * [Profile `trim-paths` option](#profile-trim-paths-option) --- Control the sanitization of file paths in build outputs. - * [`[lints.cargo]`](#lintscargo) --- Allows configuring lints for Cargo. * [path bases](#path-bases) --- Named base directories for path dependencies. * [`unstable-editions`](#unstable-editions) --- Allows use of editions that are not yet stable. * Information and metadata @@ -1758,6 +1757,7 @@ panic = "immediate-abort" Use fine grain locking instead of locking the entire build cache. +<<<<<<< HEAD ## `[lints.cargo]` * Tracking Issue: [#12235](https://github.com/rust-lang/cargo/issues/12235) @@ -1779,6 +1779,34 @@ implicit-features = "warn" workspace = true ``` +||||||| parent of a49194588 (feat(diag): Stabilize cargo-lints) +Note: Fine grain locking implicitly enables [build-dir-new-layout](#build-dir-new-layout) as fine grain locking builds on that directory reoganization. + +## `[lints.cargo]` + +* Tracking Issue: [#12235](https://github.com/rust-lang/cargo/issues/12235) + +A new `lints` tool table for `cargo` that can be used to configure lints emitted +by `cargo` itself when `-Zcargo-lints` is used +```toml +[lints.cargo] +implicit-features = "warn" +``` + +This will work with +[RFC 2906 `workspace-deduplicate`](https://rust-lang.github.io/rfcs/2906-cargo-workspace-deduplicate.html): +```toml +[workspace.lints.cargo] +implicit-features = "warn" + +[lints] +workspace = true +``` + +======= +Note: Fine grain locking implicitly enables [build-dir-new-layout](#build-dir-new-layout) as fine grain locking builds on that directory reoganization. + +>>>>>>> a49194588 (feat(diag): Stabilize cargo-lints) ## Path Bases * Tracking Issue: [#14355](https://github.com/rust-lang/cargo/issues/14355) @@ -2482,3 +2510,9 @@ See fopr the reason for its remo ## build-dir-new-layout The new build-dir filesystem layout was stabilized in the 1.100.0 release. + +## `[lints.cargo]` + +Cargo's linting system and the `[lints.cargo]` table have been stabilized in Rust 1.100. +See the [lints chapter](lints.md) and [the lints section](manifest.md#the-lints-section) +for information about configuring Cargo lints. diff --git a/src/compiler/job_queue/mod.rs b/src/compiler/job_queue/mod.rs index 24560da4739..93feb98fe28 100644 --- a/src/compiler/job_queue/mod.rs +++ b/src/compiler/job_queue/mod.rs @@ -841,15 +841,13 @@ impl<'gctx> DrainState<'gctx> { } self.progress.clear(); - if build_runner.bcx.gctx.cli_unstable().cargo_lints { - let mut global_stats = GlobalDiagnosticStats::new(); - drop(unused_dependencies::lint_build_results( - build_runner, - &mut global_stats, - )); - errors.count += global_stats.error_count(); - build_runner.compilation.lint_warning_count += global_stats.lint_warning_count(); - } + let mut global_stats = GlobalDiagnosticStats::new(); + drop(unused_dependencies::lint_build_results( + build_runner, + &mut global_stats, + )); + errors.count += global_stats.error_count(); + build_runner.compilation.lint_warning_count += global_stats.lint_warning_count(); let profile_name = build_runner.bcx.build_config.requested_profile; // NOTE: this may be a bit inaccurate, since this may not display the diff --git a/src/compiler/mod.rs b/src/compiler/mod.rs index e655eacd7da..0fd0fcf0cec 100644 --- a/src/compiler/mod.rs +++ b/src/compiler/mod.rs @@ -881,11 +881,9 @@ fn prepare_rustc(build_runner: &BuildRunner<'_, '_>, unit: &Unit) -> CargoResult base.env("CARGO_TARGET_TMPDIR", tmp.display().to_string()); } - if build_runner.bcx.gctx.cli_unstable().cargo_lints { - // Added last to reduce the risk of RUSTFLAGS or `[lints]` from interfering with - // `unused_dependencies` tracking - base.arg("--force-warn=unused_crate_dependencies"); - } + // Added last to reduce the risk of RUSTFLAGS or `[lints]` from interfering with + // `unused_dependencies` tracking + base.arg("--force-warn=unused_crate_dependencies"); Ok(base) } @@ -1273,10 +1271,9 @@ fn add_error_format_and_color(build_runner: &BuildRunner<'_, '_>, cmd: &mut Proc cmd.arg("--error-format=json"); - let mut json = String::from("--json=diagnostic-rendered-ansi,artifacts,future-incompat"); - if build_runner.bcx.gctx.cli_unstable().cargo_lints { - json.push_str(",unused-externs-silent"); - } + let mut json = String::from( + "--json=diagnostic-rendered-ansi,artifacts,future-incompat,unused-externs-silent", + ); if let MessageFormat::Short | MessageFormat::Json { short: true, .. } = build_runner.bcx.build_config.message_format { diff --git a/src/diagnostics/passes.rs b/src/diagnostics/passes.rs index 11fadc3ad35..696cf41748d 100644 --- a/src/diagnostics/passes.rs +++ b/src/diagnostics/passes.rs @@ -153,19 +153,17 @@ fn emit_parse_pkg_diagnostics( rule(workspace, manifest, &path, &mut pkg_stats, workspace.gctx())?; } ParsePassRule::LintManifest { rule, lint } => { - if workspace.gctx().cli_unstable().cargo_lints { - let manifest: ManifestFor<'_> = pkg.into(); - let level = manifest.lint_level(&cargo_lints, lint, workspace.gctx()); - if level.level != LintLevel::Allow { - rule( - workspace, - manifest, - &path, - level, - &mut pkg_stats, - workspace.gctx(), - )?; - } + let manifest: ManifestFor<'_> = pkg.into(); + let level = manifest.lint_level(&cargo_lints, lint, workspace.gctx()); + if level.level != LintLevel::Allow { + rule( + workspace, + manifest, + &path, + level, + &mut pkg_stats, + workspace.gctx(), + )?; } } ParsePassRule::DiagnosticWorkspace { .. } | ParsePassRule::LintWorkspace { .. } => {} @@ -173,24 +171,22 @@ fn emit_parse_pkg_diagnostics( rule(workspace, pkg, &path, &mut pkg_stats, workspace.gctx())?; } ParsePassRule::LintPackage { rule, lint } => { - if workspace.gctx().cli_unstable().cargo_lints { - let level = lint.level( - &cargo_lints, - pkg.rust_version(), - pkg.manifest().unstable_features(), - workspace.gctx(), - ); + let level = lint.level( + &cargo_lints, + pkg.rust_version(), + pkg.manifest().unstable_features(), + workspace.gctx(), + ); - if level.level != LintLevel::Allow { - rule( - workspace, - pkg, - &path, - level, - &mut pkg_stats, - workspace.gctx(), - )?; - } + if level.level != LintLevel::Allow { + rule( + workspace, + pkg, + &path, + level, + &mut pkg_stats, + workspace.gctx(), + )?; } } } @@ -242,19 +238,17 @@ fn emit_parse_ws_diagnostics( )?; } ParsePassRule::LintManifest { rule, lint } => { - if workspace.gctx().cli_unstable().cargo_lints { - let manifest: ManifestFor<'_> = (workspace, workspace.root_maybe()).into(); - let level = manifest.lint_level(&cargo_lints, lint, workspace.gctx()); - if level.level != LintLevel::Allow { - rule( - workspace, - manifest, - workspace.root_manifest(), - level, - &mut pkg_stats, - workspace.gctx(), - )?; - } + let manifest: ManifestFor<'_> = (workspace, workspace.root_maybe()).into(); + let level = manifest.lint_level(&cargo_lints, lint, workspace.gctx()); + if level.level != LintLevel::Allow { + rule( + workspace, + manifest, + workspace.root_manifest(), + level, + &mut pkg_stats, + workspace.gctx(), + )?; } } ParsePassRule::DiagnosticWorkspace { rule } => { @@ -267,23 +261,21 @@ fn emit_parse_ws_diagnostics( )?; } ParsePassRule::LintWorkspace { rule, lint } => { - if workspace.gctx().cli_unstable().cargo_lints { - let level = lint.level( - &cargo_lints, - workspace.lowest_rust_version(), - workspace.root_maybe().unstable_features(), + let level = lint.level( + &cargo_lints, + workspace.lowest_rust_version(), + workspace.root_maybe().unstable_features(), + workspace.gctx(), + ); + if level.level != LintLevel::Allow { + rule( + workspace, + workspace.root_maybe(), + workspace.root_manifest(), + level, + &mut pkg_stats, workspace.gctx(), - ); - if level.level != LintLevel::Allow { - rule( - workspace, - workspace.root_maybe(), - workspace.root_manifest(), - level, - &mut pkg_stats, - workspace.gctx(), - )?; - } + )?; } } ParsePassRule::DiagnosticPackage { .. } | ParsePassRule::LintPackage { .. } => {} diff --git a/src/workspace/features.rs b/src/workspace/features.rs index 5a3f6dd6c7f..94043e76292 100644 --- a/src/workspace/features.rs +++ b/src/workspace/features.rs @@ -886,7 +886,6 @@ unstable_cli_options!( build_std: Option> = ("Enable Cargo to compile the standard library itself as part of a crate graph compilation"), #[serde(deserialize_with = "deserialize_comma_separated_list")] build_std_features: Option> = ("Configure features enabled for the standard library itself when building the standard library"), - cargo_lints: bool = ("Enable the `[lints.cargo]` table"), checksum_freshness: bool = ("Use a checksum to determine if output is fresh rather than filesystem mtime"), codegen_backend: bool = ("Enable the `codegen-backend` option in profiles in .cargo/config.toml file"), direct_minimal_versions: bool = ("Resolve minimal dependency versions instead of maximum (direct dependencies only)"), @@ -1003,6 +1002,8 @@ const STABILIZED_REGISTRY_AUTH: &str = const STABILIZED_LINTS: &str = "The `[lints]` table is now always available."; +const STABILIZED_CARGO_LINTS: &str = "The `[lints.cargo]` table is now always available."; + const STABILIZED_CHECK_CFG: &str = "Compile-time checking of conditional (a.k.a. `-Zcheck-cfg`) is now always enabled."; @@ -1422,6 +1423,7 @@ impl CliUnstable { "lockfile-path" => stabilized_warn(k, "1.97", STABILIZED_LOCKFILE_PATH), "warnings" => stabilized_warn(k, "1.97", STABILIZED_WARNINGS), "build-dir-new-layout" => stabilized_warn(k, "1.100", STABILIZED_BUILD_DIR_NEW_LAYOUT), + "cargo-lints" => stabilized_warn(k, "1.100", STABILIZED_CARGO_LINTS), // Unstable features // Sorted alphabetically: @@ -1434,7 +1436,6 @@ impl CliUnstable { "build-analysis" => self.build_analysis = parse_empty(k, v)?, "build-std" => self.build_std = Some(parse_list(v)), "build-std-features" => self.build_std_features = Some(parse_list(v)), - "cargo-lints" => self.cargo_lints = parse_empty(k, v)?, "codegen-backend" => self.codegen_backend = parse_empty(k, v)?, "direct-minimal-versions" => self.direct_minimal_versions = parse_empty(k, v)?, "dual-proc-macros" => self.dual_proc_macros = parse_empty(k, v)?, diff --git a/src/workspace/parser/mod.rs b/src/workspace/parser/mod.rs index cb51fe36fc4..23665eb1c84 100644 --- a/src/workspace/parser/mod.rs +++ b/src/workspace/parser/mod.rs @@ -85,7 +85,7 @@ pub fn read_manifest( let cargo_features = original_toml.cargo_features.as_ref().unwrap_or(&empty); let features = Features::new(cargo_features, gctx, &mut warnings, source_id.is_path())?; let workspace_config = - to_workspace_config(&original_toml, path, is_embedded, gctx, &mut warnings)?; + to_workspace_config(&original_toml, path, is_embedded, &mut warnings)?; if let WorkspaceConfig::Root(ws_root_config) = &workspace_config { let package_root = path.parent().unwrap(); gctx.ws_roots() @@ -233,7 +233,6 @@ fn to_workspace_config( original_toml: &manifest::TomlManifest, manifest_file: &Path, is_embedded: bool, - gctx: &GlobalContext, warnings: &mut Vec, ) -> CargoResult { if is_embedded { @@ -245,7 +244,7 @@ fn to_workspace_config( original_toml.package().and_then(|p| p.workspace.as_ref()), ) { (Some(toml_config), None) => { - verify_lints(toml_config.lints.as_ref(), gctx, warnings)?; + verify_lints(toml_config.lints.as_ref(), warnings)?; if let Some(ws_deps) = &toml_config.dependencies { for (name, dep) in ws_deps { if dep.is_optional() { @@ -1664,7 +1663,6 @@ pub fn to_real_manifest( normalized_toml .normalized_lints() .expect("previously normalized"), - gctx, warnings, )?; let default = manifest::TomlLints::default(); @@ -2676,7 +2674,6 @@ fn validate_profile_override(profile: &manifest::TomlProfile, which: &str) -> Ca fn verify_lints( lints: Option<&manifest::TomlLints>, - gctx: &GlobalContext, warnings: &mut Vec, ) -> CargoResult<()> { let Some(lints) = lints else { @@ -2694,9 +2691,6 @@ supported tools: {}", warnings.push(message); continue; } - if tool == "cargo" && !gctx.cli_unstable().cargo_lints { - warn_for_cargo_lint_feature(gctx, warnings); - } let mut seen_normalized: HashMap = HashMap::default(); for (name, config) in lints { let normalized = name.replace('-', "_"); @@ -2749,38 +2743,6 @@ static EXPECTED_LINT_CONFIG: &[(&str, &str, &str)] = &[ ("rust", "unexpected_cfgs", "check-cfg"), ]; -fn warn_for_cargo_lint_feature(gctx: &GlobalContext, warnings: &mut Vec) { - use std::fmt::Write as _; - - let key_name = "lints.cargo"; - let feature_name = "cargo-lints"; - - let mut message = String::new(); - - let _ = write!( - message, - "unused manifest key `{key_name}` (may be supported in a future version)" - ); - if gctx.nightly_features_allowed { - let _ = write!( - message, - " - -consider passing `-Z{feature_name}` to enable this feature." - ); - } else { - let _ = write!( - message, - " - -this Cargo does not support nightly features, but if you -switch to nightly channel you can pass -`-Z{feature_name}` to enable this feature.", - ); - } - warnings.push(message); -} - fn lints_to_rustflags(lints: &manifest::TomlLints) -> CargoResult> { let mut rustflags = lints .iter() diff --git a/tests/build-std/main.rs b/tests/build-std/main.rs index 6753ef84264..b0a4eb16020 100644 --- a/tests/build-std/main.rs +++ b/tests/build-std/main.rs @@ -467,24 +467,16 @@ fn build_std_does_not_warn_about_implicit_std_deps() { .file("bar/src/lib.rs", "") .build(); - let output = p - .cargo("build") - .build_std() - .target_host() - .env("RUSTFLAGS", "-W unused-crate-dependencies") - .run(); + let output = p.cargo("build").build_std().target_host().run(); let stderr = String::from_utf8(output.stderr).unwrap(); println!("{stderr}"); let mut unused_warnings = stderr .lines() - .filter(|l| l.contains("is unused in crate")) + .filter(|l| l.contains("unused dependency")) .collect::>(); unused_warnings.sort(); let unused_warnings = unused_warnings.join("\n"); - assert_data_eq!( - unused_warnings, - str!["warning: extern crate `bar` is unused in crate `buildstd_test`"] - ); + assert_data_eq!(unused_warnings, str!["warning: unused dependency `bar`"]); } #[cargo_test(build_std_real)] diff --git a/tests/testsuite/alt_registry.rs b/tests/testsuite/alt_registry.rs index afaa26253d9..3adbf19fa75 100644 --- a/tests/testsuite/alt_registry.rs +++ b/tests/testsuite/alt_registry.rs @@ -26,6 +26,9 @@ fn depend_on_alt_registry() { [dependencies.bar] version = "0.0.1" registry = "alternative" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -75,6 +78,9 @@ fn depend_on_alt_registry_depends_on_same_registry_no_index() { [dependencies.bar] version = "0.0.1" registry = "alternative" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -121,6 +127,9 @@ fn depend_on_alt_registry_depends_on_same_registry() { [dependencies.bar] version = "0.0.1" registry = "alternative" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -167,6 +176,9 @@ fn depend_on_alt_registry_depends_on_crates_io() { [dependencies.bar] version = "0.0.1" registry = "alternative" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -215,6 +227,9 @@ fn registry_and_path_dep_works() { [dependencies.bar] path = "bar" registry = "alternative" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -250,6 +265,9 @@ fn registry_and_git_dep_works() { version = "0.0.1" edition = "2015" authors = [] + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -270,6 +288,9 @@ fn registry_and_git_dep_works() { version = "0.0.1" registry = "alternative" git="{}" + + [lints.cargo] + default = "allow" "#, bar.url(), ), @@ -371,6 +392,9 @@ fn publish_with_registry_dependency() { [dependencies.bar] version = "0.0.1" registry = "alternative" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -456,6 +480,9 @@ fn alt_registry_and_crates_io_deps() { [dependencies.alt_reg_dep] version = "0.1.0" registry = "alternative" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -612,6 +639,9 @@ fn publish_with_crates_io_dep() { [dependencies.bar] version = "0.0.1" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -696,6 +726,9 @@ fn publish_with_git_and_registry_dep() { version = "0.0.1" edition = "2015" authors = [] + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -716,6 +749,9 @@ fn publish_with_git_and_registry_dep() { version = "0.0.1" registry = "alternative" git="{}" + + [lints.cargo] + default = "allow" "#, bar.url(), ), @@ -929,6 +965,9 @@ fn no_api() { [dependencies.bar] version = "0.0.1" registry = "alternative" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -1784,6 +1823,9 @@ fn registries_index_relative_url() { [dependencies.bar] version = "0.0.1" registry = "relative" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") diff --git a/tests/testsuite/artifact_dep.rs b/tests/testsuite/artifact_dep.rs index f547e1049c0..cab1c02651c 100644 --- a/tests/testsuite/artifact_dep.rs +++ b/tests/testsuite/artifact_dep.rs @@ -1974,6 +1974,9 @@ fn show_no_lib_warning_with_artifact_dependencies_that_have_no_lib_but_lib_true( [dependencies] bar = { path = "bar/", artifact = "bin", lib = true } + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -2854,6 +2857,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep() { [dependencies] a = {{ path = "a" }} bar = {{ path = "bar", artifact = "bin", target = "{target}" }} + + [lints.cargo] + default = "allow" "# ), ) @@ -2873,6 +2879,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep() { [dependencies] a = { path = "../a", features = ["feature"] } + + [lints.cargo] + default = "allow" "#, ) .file( @@ -2895,6 +2904,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep() { [features] feature = ["c/feature"] + + [lints.cargo] + default = "allow" "#, ) .file( @@ -2917,6 +2929,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep() { [dependencies] c = { path = "../c" } + + [lints.cargo] + default = "allow" "#, ) .file( @@ -2939,6 +2954,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep() { [features] feature = [] + + [lints.cargo] + default = "allow" "#, ) .file( @@ -2981,6 +2999,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep_lib() { a = {{ path = "a" }} b = {{ path = "b", features = ["feature"] }} bar = {{ path = "bar", artifact = "bin", lib = true, target = "{target}" }} + + [lints.cargo] + default = "allow" "# ), ) @@ -2996,6 +3017,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep_lib() { [dependencies] a = { path = "../a", features = ["b"] } b = { path = "../b" } + + [lints.cargo] + default = "allow" "#, ) .file("bar/src/lib.rs", "") @@ -3019,6 +3043,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep_lib() { [dependencies] b = { path = "../b", optional = true } + + [lints.cargo] + default = "allow" "#, ) .file( @@ -3040,6 +3067,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep_lib() { [features] feature = [] + + [lints.cargo] + default = "allow" "#, ) .file( @@ -3081,6 +3111,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep_and_proc_macro() { [dependencies] c = {{ path = "c" }} bar = {{ path = "bar", artifact = "bin", target = "{target}" }} + + [lints.cargo] + default = "allow" "# ), ) @@ -3095,6 +3128,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep_and_proc_macro() { [dependencies] b = { path = "../b" } + + [lints.cargo] + default = "allow" "#, ) .file("bar/src/main.rs", "fn main() {}") @@ -3111,6 +3147,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep_and_proc_macro() { [lib] proc-macro = true + + [lints.cargo] + default = "allow" "#, ) .file("b/src/lib.rs", "") @@ -3128,6 +3167,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep_and_proc_macro() { [lib] proc-macro = true + + [lints.cargo] + default = "allow" "#, ) .file( @@ -3150,6 +3192,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep_and_proc_macro() { [dependencies] d = { path = "../d" } + + [lints.cargo] + default = "allow" "#, ) .file( @@ -3172,6 +3217,9 @@ fn decouple_same_target_transitive_dep_from_artifact_dep_and_proc_macro() { [features] feature = [] + + [lints.cargo] + default = "allow" "#, ) .file("d/src/lib.rs", "pub struct D;") diff --git a/tests/testsuite/bad_config.rs b/tests/testsuite/bad_config.rs index f666e6a341a..9da86a93edf 100644 --- a/tests/testsuite/bad_config.rs +++ b/tests/testsuite/bad_config.rs @@ -1084,6 +1084,9 @@ fn build_dependencies2() { [build_dependencies] a = {path = "a"} + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -1094,6 +1097,9 @@ fn build_dependencies2() { name = "a" version = "0.0.1" edition = "2015" + + [lints.cargo] + default = "allow" "#, ) .file("a/src/lib.rs", "") @@ -1164,6 +1170,9 @@ fn build_dependencies2_conflict() { a = {path = "a"} [build_dependencies] a = {path = "a"} + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -1174,6 +1183,9 @@ fn build_dependencies2_conflict() { name = "a" version = "0.0.1" edition = "2015" + + [lints.cargo] + default = "allow" "#, ) .file("a/src/lib.rs", "") @@ -1797,6 +1809,9 @@ fn default_features2() { [dependencies] a = { path = "a", features = ["f1"], default_features = false } + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -1812,6 +1827,9 @@ fn default_features2() { [features] default = ["f1"] f1 = [] + + [lints.cargo] + default = "allow" "#, ) .file("a/src/lib.rs", "") @@ -1890,6 +1908,9 @@ fn default_features2_conflict() { [dependencies] a = { path = "a", features = ["f1"], default-features = false, default_features = false } + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -1905,6 +1926,9 @@ fn default_features2_conflict() { [features] default = ["f1"] f1 = [] + + [lints.cargo] + default = "allow" "#, ) .file("a/src/lib.rs", "") @@ -1946,6 +1970,9 @@ fn workspace_default_features2() { [dependencies] dep_workspace_only.workspace = true + + [lints.cargo] + default = "allow" "#, ) .file("workspace_only/src/lib.rs", "") @@ -1957,6 +1984,9 @@ fn workspace_default_features2() { version = "0.1.0" edition = "2015" authors = [] + + [lints.cargo] + default = "allow" "#, ) .file("dep_workspace_only/src/lib.rs", "") @@ -1971,6 +2001,9 @@ fn workspace_default_features2() { [dependencies] dep_package_only = { workspace = true, default_features = true } + + [lints.cargo] + default = "allow" "#, ) .file("package_only/src/lib.rs", "") @@ -1982,6 +2015,9 @@ fn workspace_default_features2() { version = "0.1.0" edition = "2015" authors = [] + + [lints.cargo] + default = "allow" "#, ) .file("dep_package_only/src/lib.rs", "") @@ -2987,6 +3023,9 @@ fn warn_semver_metadata() { [dependencies] bar = "1.0.0+1234" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") diff --git a/tests/testsuite/build.rs b/tests/testsuite/build.rs index d911e09de0c..a99f7e9b582 100644 --- a/tests/testsuite/build.rs +++ b/tests/testsuite/build.rs @@ -1564,7 +1564,7 @@ fn cargo_default_env_metadata_env_var() { path = "bar" "#, ) - .file("src/lib.rs", "// hi") + .file("src/lib.rs", "extern crate bar;") .file( "bar/Cargo.toml", r#" @@ -1590,7 +1590,7 @@ fn cargo_default_env_metadata_env_var() { .with_stderr_data(format!( "\ ... -[RUNNING] `rustc --crate-name foo [..]--extern bar=[ROOT]/foo/target/debug/build/bar/[HASH]/out/{dll_prefix}bar{dll_suffix}[..]` +[RUNNING] `rustc --crate-name foo [..]--extern bar=[ROOT]/foo/target/debug/build/bar/[HASH]/out/{dll_prefix}bar{dll_suffix}[..] --force-warn=unused_crate_dependencies` ... ")) .run(); @@ -1603,7 +1603,7 @@ fn cargo_default_env_metadata_env_var() { .with_stderr_data(format!( "\ ... -[RUNNING] `rustc --crate-name foo [..]--extern bar=[ROOT]/foo/target/debug/build/bar/[HASH]/out/{dll_prefix}bar-[..]{dll_suffix}[..]` +[RUNNING] `rustc --crate-name foo [..]--extern bar=[ROOT]/foo/target/debug/build/bar/[HASH]/out/{dll_prefix}bar-[..]{dll_suffix}[..] --force-warn=unused_crate_dependencies` ... ")) .run(); @@ -3866,6 +3866,9 @@ fn build_all_workspace() { bar = { path = "bar" } [workspace] + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -4347,6 +4350,9 @@ fn build_all_member_dependency_same_name() { [dependencies] a = "0.1.0" + + [lints.cargo] + default = "allow" "#, ) .file("a/src/lib.rs", "pub fn a() {}") @@ -4633,6 +4639,9 @@ fn rustc_wrapper_relative() { [dependencies] bar = "1.0" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -5924,7 +5933,7 @@ fn build_lib_only() { p.cargo("build --lib -v") .with_stderr_data(str![[r#" [COMPILING] foo v0.0.1 ([ROOT]/foo) -[RUNNING] `rustc --crate-name foo --edition=2015 src/lib.rs [..]--crate-type lib --emit=[..]link[..] --out-dir [ROOT]/foo/target/debug/build/foo/[HASH]/out` +[RUNNING] `rustc --crate-name foo --edition=2015 src/lib.rs [..]--crate-type lib --emit=[..]link[..] --out-dir [ROOT]/foo/target/debug/build/foo/[HASH]/out --force-warn=unused_crate_dependencies` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s "#]]) @@ -6594,7 +6603,7 @@ fn should_not_include_current_build_unit_path_in_rustc_args() { // Don't pass any `-L` args if there are no dependencies (including our own `out` dir) .with_stderr_data(str![[r#" [COMPILING] foo v0.0.1 ([ROOT]/foo) -[RUNNING] `rustc --crate-name foo [..] --out-dir [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out` +[RUNNING] `rustc --crate-name foo [..] --out-dir [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out --force-warn=unused_crate_dependencies` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s "#]]) @@ -6624,7 +6633,7 @@ fn should_not_include_build_script_out_dir_path_in_rustc_args() { [COMPILING] foo v0.0.1 ([ROOT]/foo) [RUNNING] `rustc --crate-name build_script_build [..]` [RUNNING] `[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/build_script_build` -[RUNNING] `rustc --crate-name foo [..] --out-dir [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out` +[RUNNING] `rustc --crate-name foo [..] --out-dir [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out --force-warn=unused_crate_dependencies` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s "#]]) @@ -6769,6 +6778,9 @@ fn should_not_include_proc_macro_deps_paths_in_rustc_args() { [dependencies] my-proc-macro = { path = "my-proc-macro" } + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -6783,6 +6795,9 @@ fn should_not_include_proc_macro_deps_paths_in_rustc_args() { [lib] crate-type = ["dylib"] + + [lints.cargo] + default = "allow" "#, ) .file( @@ -6797,6 +6812,9 @@ fn should_not_include_proc_macro_deps_paths_in_rustc_args() { version = "0.1.0" edition = "2021" authors = [] + + [lints.cargo] + default = "allow" "#, ) .file( @@ -6818,6 +6836,9 @@ fn should_not_include_proc_macro_deps_paths_in_rustc_args() { [dependencies] my-dylib = { path = "../my-dylib" } my-rlib = { path = "../my-rlib" } + + [lints.cargo] + default = "allow" "#, ) .file( @@ -6849,7 +6870,7 @@ fn should_not_include_proc_macro_deps_paths_in_rustc_args() { [COMPILING] my-proc-macro v0.1.0 ([ROOT]/foo/my-proc-macro) [RUNNING] `rustc --crate-name my_proc_macro [..]` [COMPILING] foo v0.0.0 ([ROOT]/foo) -[RUNNING] `rustc --crate-name foo [..] --out-dir [ROOT]/foo/target/debug/build/foo/[HASH]/out -L dependency=[ROOT]/foo/target/debug/build/my-proc-macro/[HASH]/out --extern my_proc_macro=[ROOT]/foo/target/debug/build/my-proc-macro/[HASH]/out/[..]` +[RUNNING] `rustc --crate-name foo [..] --out-dir [ROOT]/foo/target/debug/build/foo/[HASH]/out -L dependency=[ROOT]/foo/target/debug/build/my-proc-macro/[HASH]/out --extern my_proc_macro=[ROOT]/foo/target/debug/build/my-proc-macro/[HASH]/out/[..] --force-warn=unused_crate_dependencies` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s "#]].unordered()) diff --git a/tests/testsuite/build_dir.rs b/tests/testsuite/build_dir.rs index b34177ff107..25758e30894 100644 --- a/tests/testsuite/build_dir.rs +++ b/tests/testsuite/build_dir.rs @@ -45,6 +45,7 @@ fn binary_with_debug() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d @@ -97,6 +98,7 @@ fn binary_with_release() { [ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/release/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/release/build/foo/[HASH]/out/foo[..].d @@ -203,6 +205,7 @@ fn should_default_to_target() { [ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/target/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/target/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/target/debug/foo[EXE] @@ -230,6 +233,7 @@ fn should_respect_env_var() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d @@ -287,6 +291,8 @@ fn build_script_should_output_to_build_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/run/stdout [ROOT]/foo/build-dir/debug/build/foo/[HASH]/run/root-output [ROOT]/foo/build-dir/debug/build/foo/[HASH]/run/stderr +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-build-script-build-script-build "#]]); } @@ -341,6 +347,9 @@ fn cargo_tmpdir_should_output_to_build_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-test-integration-test-foo +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-test-bin-foo [ROOT]/foo/build-dir/tmp/foo.txt [ROOT]/foo/build-dir/.rustc_info.json @@ -382,6 +391,7 @@ fn examples_should_output_to_build_dir_and_uplift_to_target_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/example-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/example-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-example-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d @@ -433,6 +443,8 @@ fn benches_should_output_to_build_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-test-bench-foo [ROOT]/foo/build-dir/.rustc_info.json "#]]); @@ -578,6 +590,7 @@ fn cargo_package_should_build_in_build_dir_and_output_to_target_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/build-dir/debug/foo[EXE] @@ -654,6 +667,7 @@ fn cargo_clean_should_clean_the_target_dir_and_build_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d @@ -721,12 +735,14 @@ fn cargo_clean_should_remove_correct_files() { [ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/invoked.timestamp [ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/lib-bar [ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/lib-bar.json -[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] -[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/output-lib-bar +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d "#]]); @@ -742,6 +758,7 @@ fn cargo_clean_should_remove_correct_files() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo "#]]); } @@ -866,6 +883,7 @@ fn template_workspace_root() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d @@ -911,6 +929,7 @@ fn template_cargo_cache_home() { [ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/out/foo[..].d @@ -970,6 +989,7 @@ fn template_workspace_path_hash() { [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/foo[..].d @@ -1035,6 +1055,7 @@ fn template_workspace_path_hash_should_handle_symlink() { [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/lib-foo.json +[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/output-lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/foo-[HASH].d [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/libfoo-[HASH].rmeta @@ -1070,6 +1091,7 @@ fn template_workspace_path_hash_should_handle_symlink() { [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/lib-foo.json +[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/output-lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/foo-[HASH].d [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/libfoo-[HASH].rmeta @@ -1207,6 +1229,8 @@ CARGO_BIN_FILE_BAR_bar=[ROOT]/foo/build-dir/debug/build/bar/[HASH]/artifact/bin/ [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo +[ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/output-bin-bar +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/bar/[HASH]/artifact/bin/bar[..][EXE] [ROOT]/foo/build-dir/debug/build/bar/[HASH]/artifact/bin/bar[..].d [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] @@ -1389,6 +1413,7 @@ fn should_work_with_cargo_default_lib_metadata() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/run-build-script-build-script-build @@ -1400,6 +1425,7 @@ fn should_work_with_cargo_default_lib_metadata() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/build-script-build-script-build [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/build-script-build-script-build.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-build-script-build-script-build +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-build-script-build-script-build [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/build_script_build[EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/build_script_build.d @@ -1436,6 +1462,7 @@ fn new_layout_opt_out_nightly() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/debug/deps/foo[..][EXE] [ROOT]/foo/build-dir/debug/deps/foo[..].d @@ -1482,6 +1509,7 @@ fn new_layout_opt_out_stable() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/debug/deps/foo[..][EXE] [ROOT]/foo/build-dir/debug/deps/foo[..].d diff --git a/tests/testsuite/build_dir_fine_grain_locking.rs b/tests/testsuite/build_dir_fine_grain_locking.rs index 90c2abfd478..a9616ab374f 100644 --- a/tests/testsuite/build_dir_fine_grain_locking.rs +++ b/tests/testsuite/build_dir_fine_grain_locking.rs @@ -47,6 +47,7 @@ fn binary_with_debug() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock @@ -103,6 +104,7 @@ fn binary_with_release() { [ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/release/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/release/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/build-dir/release/build/foo/[HASH]/.lock @@ -216,6 +218,7 @@ fn should_default_to_target() { [ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/target/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/target/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/target/debug/foo[EXE] @@ -248,6 +251,7 @@ fn should_respect_env_var() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo "#]]); } @@ -309,6 +313,8 @@ fn build_script_should_output_to_build_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-build-script-build-script-build "#]]); } @@ -371,6 +377,9 @@ fn cargo_tmpdir_should_output_to_build_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock [ROOT]/foo/build-dir/tmp/foo.txt [ROOT]/foo/build-dir/.rustc_info.json +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-test-integration-test-foo +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-test-bin-foo "#]]); @@ -413,6 +422,7 @@ fn examples_should_output_to_build_dir_and_uplift_to_target_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/example-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/example-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-example-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock @@ -471,6 +481,8 @@ fn benches_should_output_to_build_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock [ROOT]/foo/build-dir/.rustc_info.json +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-test-bench-foo "#]]); @@ -583,6 +595,7 @@ fn cargo_package_should_build_in_build_dir_and_output_to_target_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock @@ -664,6 +677,7 @@ fn cargo_clean_should_clean_the_target_dir_and_build_dir() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock @@ -744,6 +758,8 @@ fn cargo_clean_should_remove_correct_files() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/output-lib-bar +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/bar/[HASH]/.lock [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock @@ -765,6 +781,7 @@ fn cargo_clean_should_remove_correct_files() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo "#]]); } @@ -898,6 +915,7 @@ fn template_workspace_root() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock @@ -947,6 +965,7 @@ fn template_cargo_cache_home() { [ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/.lock @@ -1010,6 +1029,7 @@ fn template_workspace_path_hash() { [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp +[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/.lock @@ -1079,6 +1099,7 @@ fn template_workspace_path_hash_should_handle_symlink() { [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/lib-foo.json +[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/output-lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/foo-[HASH].d [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/libfoo-[HASH].rmeta [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/.lock @@ -1120,6 +1141,7 @@ fn template_workspace_path_hash_should_handle_symlink() { [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/lib-foo.json +[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/output-lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/foo-[HASH].d [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/out/libfoo-[HASH].rmeta [ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/.lock @@ -1259,6 +1281,8 @@ CARGO_BIN_FILE_BAR_bar=[ROOT]/foo/build-dir/debug/build/bar/[HASH]/artifact/bin/ [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json [ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo +[ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/output-bin-bar +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo [ROOT]/foo/build-dir/debug/build/bar/[HASH]/artifact/bin/bar[..][EXE] [ROOT]/foo/build-dir/debug/build/bar/[HASH]/artifact/bin/bar[..].d [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] @@ -1313,6 +1337,7 @@ fn new_layout_opt_out() { [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE] [ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d [ROOT]/foo/build-dir/debug/build/foo/[HASH]/.lock +[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/output-bin-foo "#]]); diff --git a/tests/testsuite/build_dir_legacy.rs b/tests/testsuite/build_dir_legacy.rs index fb6c1b42f00..13f606d6fd2 100644 --- a/tests/testsuite/build_dir_legacy.rs +++ b/tests/testsuite/build_dir_legacy.rs @@ -48,6 +48,7 @@ fn binary_with_debug() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/debug/deps/foo[..][EXE] [ROOT]/foo/build-dir/debug/deps/foo[..].d @@ -103,6 +104,7 @@ fn binary_with_release() { [ROOT]/foo/build-dir/release/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/build-dir/release/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/release/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/release/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/release/deps/foo[..][EXE] [ROOT]/foo/build-dir/release/deps/foo[..].d @@ -212,6 +214,7 @@ fn should_default_to_target() { [ROOT]/foo/target/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/target/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/target/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/target/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/target/debug/deps/foo[..][EXE] [ROOT]/foo/target/debug/deps/foo[..].d [ROOT]/foo/target/debug/foo[EXE] @@ -240,6 +243,7 @@ fn should_respect_env_var() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/debug/deps/foo[..][EXE] [ROOT]/foo/build-dir/debug/deps/foo[..].d @@ -286,6 +290,7 @@ fn build_script_should_output_to_build_dir() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/.rustc_info.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/run-build-script-build-script-build [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/run-build-script-build-script-build.json @@ -293,6 +298,7 @@ fn build_script_should_output_to_build_dir() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-build-script-build-script-build [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/build-script-build-script-build [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/build-script-build-script-build.json +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-build-script-build-script-build [ROOT]/foo/build-dir/debug/build/foo-[HASH]/build_script_build[..].d [ROOT]/foo/build-dir/debug/build/foo-[HASH]/build_script_build[..][EXE] [ROOT]/foo/build-dir/debug/build/foo-[HASH]/build-script-build[EXE] @@ -358,6 +364,9 @@ fn cargo_tmpdir_should_output_to_build_dir() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-test-integration-test-foo +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-test-bin-foo [ROOT]/foo/build-dir/tmp/foo.txt [ROOT]/foo/build-dir/.rustc_info.json @@ -402,6 +411,7 @@ fn examples_should_output_to_build_dir_and_uplift_to_target_dir() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/example-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/example-foo.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-example-foo [ROOT]/foo/build-dir/debug/examples/foo[..][EXE] [ROOT]/foo/build-dir/debug/examples/foo[..].d @@ -454,6 +464,8 @@ fn benches_should_output_to_build_dir() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-test-bench-foo [ROOT]/foo/build-dir/.rustc_info.json "#]]); @@ -607,6 +619,7 @@ fn cargo_package_should_build_in_build_dir_and_output_to_target_dir() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/debug/deps/foo[..][EXE] [ROOT]/foo/build-dir/debug/deps/foo[..].d [ROOT]/foo/build-dir/debug/foo[EXE] @@ -687,6 +700,7 @@ fn cargo_clean_should_clean_the_target_dir_and_build_dir() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/debug/deps/foo[..][EXE] [ROOT]/foo/build-dir/debug/deps/foo[..].d @@ -754,12 +768,14 @@ fn cargo_clean_should_remove_correct_files() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/debug/deps/foo[..][EXE] [ROOT]/foo/build-dir/debug/deps/foo[..].d [ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/lib-bar [ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/lib-bar.json [ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/dep-lib-bar [ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/output-lib-bar [ROOT]/foo/build-dir/debug/deps/bar[..].d [ROOT]/foo/build-dir/debug/deps/libbar[..].rlib [ROOT]/foo/build-dir/debug/deps/libbar[..].rmeta @@ -779,6 +795,7 @@ fn cargo_clean_should_remove_correct_files() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/debug/deps/foo[..][EXE] [ROOT]/foo/build-dir/debug/deps/foo[..].d @@ -914,6 +931,7 @@ fn template_workspace_root() { [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/debug/deps/foo[..][EXE] [ROOT]/foo/build-dir/debug/deps/foo[..].d @@ -962,6 +980,7 @@ fn template_cargo_cache_home() { [ROOT]/home/.cargo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/home/.cargo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/home/.cargo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/home/.cargo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/home/.cargo/build-dir/debug/deps/foo[..][EXE] [ROOT]/home/.cargo/build-dir/debug/deps/foo[..].d @@ -1024,6 +1043,7 @@ fn template_workspace_path_hash() { [ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/deps/foo[..][EXE] [ROOT]/foo/foo/[HASH]/build-dir/debug/deps/foo[..].d @@ -1092,6 +1112,7 @@ fn template_workspace_path_hash_should_handle_symlink() { [ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp [ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/lib-foo.json +[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/output-lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/deps/foo-[HASH].d [ROOT]/foo/foo/[HASH]/build-dir/debug/deps/libfoo-[HASH].rmeta @@ -1131,6 +1152,7 @@ fn template_workspace_path_hash_should_handle_symlink() { [ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp [ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/lib-foo.json +[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/output-lib-foo [ROOT]/foo/foo/[HASH]/build-dir/debug/deps/foo-[HASH].d [ROOT]/foo/foo/[HASH]/build-dir/debug/deps/libfoo-[HASH].rmeta @@ -1269,6 +1291,8 @@ CARGO_BIN_FILE_BAR_bar=[ROOT]/foo/build-dir/debug/deps/artifact/bar-[HASH]/bin/b [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo [ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp +[ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/output-bin-bar +[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/output-bin-foo [ROOT]/foo/build-dir/debug/deps/artifact/bar-[HASH]/bin/bar[..][EXE] [ROOT]/foo/build-dir/debug/deps/artifact/bar-[HASH]/bin/bar[..].d [ROOT]/foo/build-dir/debug/deps/foo[..][EXE] diff --git a/tests/testsuite/build_script.rs b/tests/testsuite/build_script.rs index de21ee02177..3ca71c914bd 100644 --- a/tests/testsuite/build_script.rs +++ b/tests/testsuite/build_script.rs @@ -1291,6 +1291,9 @@ fn custom_build_script_rustc_flags() { [dependencies.foo] path = "foo" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -1304,6 +1307,9 @@ fn custom_build_script_rustc_flags() { edition = "2015" authors = ["wycats@example.com"] build = "build.rs" + + [lints.cargo] + default = "allow" "#, ) .file("foo/src/lib.rs", "") @@ -1351,6 +1357,9 @@ fn custom_build_script_rustc_flags_no_space() { [dependencies.foo] path = "foo" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") @@ -1364,6 +1373,9 @@ fn custom_build_script_rustc_flags_no_space() { edition = "2015" authors = ["wycats@example.com"] build = "build.rs" + + [lints.cargo] + default = "allow" "#, ) .file("foo/src/lib.rs", "") @@ -1654,6 +1666,9 @@ fn overrides_and_links() { [dependencies.a] path = "a" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -1691,6 +1706,9 @@ fn overrides_and_links() { authors = [] links = "foo" build = "build.rs" + + [lints.cargo] + default = "allow" "#, ) .file("a/src/lib.rs", "") @@ -1845,6 +1863,9 @@ fn main() { name = "links" edition = "2024" links = "foo" + +[lints.cargo] +default = "allow" "#, ) .file("links/src/lib.rs", "") @@ -1858,6 +1879,9 @@ edition = "2024" [dependencies] links.path = "../links" + +[lints.cargo] +default = "allow" "#, ) .file("n/src/lib.rs", "") @@ -1871,6 +1895,9 @@ edition = "2024" [build-dependencies] links.path = "../links" + +[lints.cargo] +default = "allow" "#, ) .file("b/src/lib.rs", "") @@ -1884,6 +1911,9 @@ edition = "2024" [dev-dependencies] links.path = "../links" + +[lints.cargo] +default = "allow" "#, ) .file("d/src/lib.rs", "") @@ -2206,6 +2236,9 @@ fn with_patch() { [patch.crates-io] cxx = { path = "cxx" } + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -2218,6 +2251,9 @@ fn with_patch() { version = "1.0.0" edition = "2021" links = "cxx" + + [lints.cargo] + default = "allow" "#, ) .file("cxx/src/lib.rs", "") @@ -2434,6 +2470,9 @@ fn propagation_of_l_flags() { authors = [] [dependencies.a] path = "a" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -2450,6 +2489,9 @@ fn propagation_of_l_flags() { [dependencies.b] path = "../b" + + [lints.cargo] + default = "allow" "#, ) .file("a/src/lib.rs", "") @@ -2467,6 +2509,9 @@ fn propagation_of_l_flags() { authors = [] links = "foo" build = "build.rs" + + [lints.cargo] + default = "allow" "#, ) .file("b/src/lib.rs", "") @@ -2509,6 +2554,9 @@ fn propagation_of_l_flags_new() { authors = [] [dependencies.a] path = "a" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -2525,6 +2573,9 @@ fn propagation_of_l_flags_new() { [dependencies.b] path = "../b" + + [lints.cargo] + default = "allow" "#, ) .file("a/src/lib.rs", "") @@ -2546,6 +2597,9 @@ fn propagation_of_l_flags_new() { authors = [] links = "foo" build = "build.rs" + + [lints.cargo] + default = "allow" "#, ) .file("b/src/lib.rs", "") @@ -2723,11 +2777,11 @@ fn build_cmd_with_a_build_cmd() { [COMPILING] a v0.5.0 ([ROOT]/foo/a) [RUNNING] `rustc --crate-name build_script_build [..] a/build.rs [..] --extern b=[ROOT]/foo/target/debug/build/b/[HASH]/out/libb-[HASH].rlib[..]` [RUNNING] `[ROOT]/foo/target/debug/build/a/[HASH]/out/build_script_build` -[RUNNING] `rustc --crate-name a [..]a/src/lib.rs [..]--crate-type lib --emit=[..]link[..]-C metadata=[..] --out-dir [ROOT]/foo/target/debug/build/a/[HASH]/out` +[RUNNING] `rustc --crate-name a [..]a/src/lib.rs [..]--crate-type lib --emit=[..]link[..]-C metadata=[..] --out-dir [ROOT]/foo/target/debug/build/a/[HASH]/out --force-warn=unused_crate_dependencies` [COMPILING] foo v0.5.0 ([ROOT]/foo) [RUNNING] `rustc --crate-name build_script_build --edition=2015 build.rs [..]--crate-type bin --emit=[..]link[..]-C metadata=[..] --out-dir [ROOT]/foo/target/debug/build/foo/[HASH]/out [..] --extern a=[ROOT]/foo/target/debug/build/a/[HASH]/out/liba-[HASH].rlib[..]` [RUNNING] `[ROOT]/foo/target/debug/build/foo/[HASH]/out/build_script_build` -[RUNNING] `rustc --crate-name foo [..]src/lib.rs [..]--crate-type lib --emit=[..]-C debuginfo=2 [..]-C metadata=[..] --out-dir [ROOT]/foo/target/debug/build/foo/[HASH]/out` +[RUNNING] `rustc --crate-name foo [..]src/lib.rs [..]--crate-type lib --emit=[..]-C debuginfo=2 [..]-C metadata=[..] --out-dir [ROOT]/foo/target/debug/build/foo/[HASH]/out --force-warn=unused_crate_dependencies` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s "#]]).run(); @@ -3939,6 +3993,9 @@ fn diamond_passes_args_only_once() { [dependencies] a = { path = "a" } b = { path = "b" } + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -3954,6 +4011,9 @@ fn diamond_passes_args_only_once() { [dependencies] b = { path = "../b" } c = { path = "../c" } + + [lints.cargo] + default = "allow" "#, ) .file("a/src/lib.rs", "") @@ -3967,6 +4027,9 @@ fn diamond_passes_args_only_once() { authors = [] [dependencies] c = { path = "../c" } + + [lints.cargo] + default = "allow" "#, ) .file("b/src/lib.rs", "") @@ -3979,6 +4042,9 @@ fn diamond_passes_args_only_once() { edition = "2015" authors = [] build = "build.rs" + + [lints.cargo] + default = "allow" "#, ) .file( @@ -4841,6 +4907,9 @@ fn warnings_emitted_from_path_dep() { [dependencies] a = { path = "a" } + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -4853,6 +4922,9 @@ fn warnings_emitted_from_path_dep() { edition = "2015" authors = [] build = "build.rs" + + [lints.cargo] + default = "allow" "#, ) .file("a/src/lib.rs", "") @@ -5084,6 +5156,9 @@ fn warnings_hidden_for_upstream() { edition = "2015" authors = [] build = "build.rs" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -5101,6 +5176,9 @@ fn warnings_hidden_for_upstream() { [dependencies] bar = "*" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -5145,6 +5223,9 @@ fn warnings_printed_on_vv() { edition = "2015" authors = [] build = "build.rs" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -5162,6 +5243,9 @@ fn warnings_printed_on_vv() { [dependencies] bar = "*" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") @@ -6317,6 +6401,9 @@ fn rerun_if_published_directory() { [dependencies] mylib-sys = "1.0.0" + + [lints.cargo] + default = "allow" "#, ) .file("src/main.rs", "fn main() {}") diff --git a/tests/testsuite/build_script_extra_link_arg.rs b/tests/testsuite/build_script_extra_link_arg.rs index 5b49d7747e8..2896b7c4871 100644 --- a/tests/testsuite/build_script_extra_link_arg.rs +++ b/tests/testsuite/build_script_extra_link_arg.rs @@ -266,6 +266,9 @@ fn link_arg_transitive_not_allowed() { [dependencies] bar = "1.0" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") diff --git a/tests/testsuite/cache_messages.rs b/tests/testsuite/cache_messages.rs index db54eefe0bf..963f9d0fd24 100644 --- a/tests/testsuite/cache_messages.rs +++ b/tests/testsuite/cache_messages.rs @@ -230,6 +230,9 @@ fn very_verbose() { [dependencies] bar = "1.0" + + [lints.cargo] + default = "allow" "#, ) .file("src/lib.rs", "") diff --git a/tests/testsuite/cargo/z_help/stdout.term.svg b/tests/testsuite/cargo/z_help/stdout.term.svg index f8f602766b3..356948d9158 100644 --- a/tests/testsuite/cargo/z_help/stdout.term.svg +++ b/tests/testsuite/cargo/z_help/stdout.term.svg @@ -1,4 +1,4 @@ - +