rust/src/tools
Matthias Krüger 4a699fc475
Rollup merge of #132541 - RalfJung:const-stable-extern-crate, r=compiler-errors
Proper support for cross-crate recursive const stability checks

~~Stacked on top of https://github.com/rust-lang/rust/pull/132492; only the last three commits are new.~~

In a crate without `staged_api` but with `-Zforce-unstable-if-unmarked`, we now subject all functions marked with `#[rustc_const_stable_indirect]` to recursive const stability checks. We require an opt-in so that by default, a crate can be built with `-Zforce-unstable-if-unmarked` and use nightly features as usual. This property is recorded in the crate metadata so when a `staged_api` crate calls such a function, it sees the `#[rustc_const_stable_indirect]` and allows it to be exposed on stable. This, finally, will let us expose `const fn` from hashbrown on stable.

The second commit makes const stability more like regular stability: via `check_missing_const_stability`, we ensure that all publicly reachable functions have a const stability attribute -- both in  `staged_api` crates and `-Zforce-unstable-if-unmarked` crates. To achieve this, we move around the stability computation so that const stability is computed after regular stability is done. This lets us access the final result of the regular stability computation, which we use so that `const fn` can inherit the regular stability (but only if that is "unstable"). Fortunately, this lets us get rid of an `Option` in `ConstStability`.

This is the last PR that I have planned in this series.

r? `@compiler-errors`
2024-11-12 18:11:04 +01:00
..
build-manifest Remove the wasm32-wasi target from rustc 2024-11-03 07:09:34 -08:00
bump-stage0 move src/tools/build_helper into src/build_helper 2024-11-11 11:19:11 +03:00
cargo@4a2d8dc636 Update cargo 2024-11-09 18:12:21 -05:00
cargotest Reformat use declarations. 2024-07-29 08:26:52 +10:00
clippy Rollup merge of #132541 - RalfJung:const-stable-extern-crate, r=compiler-errors 2024-11-12 18:11:04 +01:00
collect-license-metadata Update generate-copyright 2024-08-06 11:04:55 +01:00
compiletest move src/tools/build_helper into src/build_helper 2024-11-11 11:19:11 +03:00
coverage-dump coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
enzyme@2fe5164a24 Enzyme backend 2024-09-05 22:47:23 -04:00
error_index_generator Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
generate-copyright Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
generate-windows-sys Add windows-targets crate to std's sysroot 2024-08-09 10:43:43 +00:00
html-checker rustdoc: redesign toolbar and disclosure widgets 2024-09-10 17:56:05 -07:00
jsondocck Rename command-list.rs to directive-list.rs 2024-10-29 17:39:13 +11:00
jsondoclint Update rustc-hash to version 2 2024-10-20 00:12:49 -07:00
libcxx-version
linkchecker linkchecker: add a reminder on broken links to add new/renamed pages to SUMMARY.md for mdBooks 2024-10-15 20:46:16 +08:00
lint-docs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
lld-wrapper Reformat use declarations. 2024-07-29 08:26:52 +10:00
llvm-bitcode-linker Reformat use declarations. 2024-07-29 08:26:52 +10:00
miri fix linux-futex test being accidentally disabled 2024-11-10 12:36:40 +01:00
miropt-test-tools Emit error on skip-filecheck test containing filecheck directives 2024-10-19 13:24:07 +00:00
nix-dev-shell Add an option of using nix-shell instead of nix flake 2024-09-21 11:44:38 +02:00
opt-dist move src/tools/build_helper into src/build_helper 2024-11-11 11:19:11 +03:00
remote-test-client Reformat use declarations. 2024-07-29 08:26:52 +10:00
remote-test-server Reformat use declarations. 2024-07-29 08:26:52 +10:00
replace-version-placeholder Reformat use declarations. 2024-07-29 08:26:52 +10:00
rls Reformat use declarations. 2024-07-29 08:26:52 +10:00
run-make-support move src/tools/build_helper into src/build_helper 2024-11-11 11:19:11 +03:00
rust-analyzer Update the file hash 2024-11-11 16:06:55 +01:00
rust-installer Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustbook Update mdbook to 0.4.42 2024-11-08 15:38:32 -08:00
rustc-perf@d5055e7804 bump up rustc-perf's version 2024-08-09 01:24:39 +09:00
rustc-perf-wrapper impl compare command and benchmark command to rustc-perf-wrapper 2024-08-09 20:03:14 +09:00
rustdoc Link std statically in rustc_driver 2024-08-11 04:16:53 +02:00
rustdoc-gui Enable --no-sandbox option by default for rustdoc GUI tests 2024-10-04 12:11:23 +02:00
rustdoc-gui-test move src/tools/build_helper into src/build_helper 2024-11-11 11:19:11 +03:00
rustdoc-js rustdoc-search: show types signatures in results 2024-10-30 10:35:39 -07:00
rustdoc-themes Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustfmt Do not format generic consts 2024-11-02 20:25:06 +00:00
suggest-tests move src/tools/build_helper into src/build_helper 2024-11-11 11:19:11 +03:00
tidy move src/tools/build_helper into src/build_helper 2024-11-11 11:19:11 +03:00
tier-check Add NuttX based targets for RISC-V and ARM 2024-07-19 22:00:42 +08:00
unicode-table-generator Auto merge of #132500 - RalfJung:char-is-whitespace-const, r=jhpratt 2024-11-06 04:07:32 +00:00
unstable-book-gen Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
wasm-component-ld Update wasm-component-ld to 0.5.10 2024-10-09 13:21:00 -07:00
x Reformat use declarations. 2024-07-29 08:26:52 +10:00
cherry-pick.sh
publish_toolstate.py Resolved python deprecation warning in publish_toolstate.py 2024-10-14 15:27:37 -04:00