rustdoc: properly elide cross-crate host effect args#117531
rustdoc: properly elide cross-crate host effect args#117531bors merged 1 commit intorust-lang:masterfrom
Conversation
|
(rustbot has picked a reviewer for you, use r? to override) |
| } | ||
| hir::GenericArg::Lifetime(_) => GenericArg::Lifetime(Lifetime::elided()), | ||
| hir::GenericArg::Type(ty) => GenericArg::Type(clean_ty(ty, cx)), | ||
| // FIXME(effects): This will still emit `<true>` for non-const impls of const traits |
There was a problem hiding this comment.
In #116670 (https://github.com/rust-lang/rust/pull/116670/files#r1357977394) I blamed this code path for /*host*/ true getting leaked in impls which isn't correct 😅. Now I fully understand the relevant parts of the effects lowering code and can confirm that this piece of code is correct. #112463 (sic!) fixed the specific impl issue.
Checking for the presence of #[rustc_host] on the AnonConst is correct and works not just for /*host*/ host but also for the hypothetical /*host*/ true (unreachable atm since true args never get synthesized in the first place) /*host*/ false (always const) (unreachable atm, #117530 would change that).
There was a problem hiding this comment.
I'm very tempted to ask you to add this as a code comment. So I'll succumb to the temptation: please add this as a code comment. :D
| // FIXME(effects): this causes `host = true` and `host = false` generics to also be emitted. | ||
| if let ty::ConstKind::Param(p) = ct.kind() | ||
| && p.name == sym::host | ||
| if let ty::GenericParamDefKind::Const { is_host_effect: true, .. } = params[index].kind |
There was a problem hiding this comment.
I'd prefer to have a test, even if pointless. If everything is covered, regressions will be easier to track down.
1f74e13 to
ee0cdfd
Compare
37c8feb to
217153b
Compare
217153b to
1dcdf83
Compare
| // edition: 2021 | ||
| #![crate_name = "user"] | ||
|
|
||
| // Don't render the host param on `load` and the host arg `host` passed to `Resource`. |
There was a problem hiding this comment.
This one was already fixed by oli's PR but there was no cross-crate test for it yet, only a local crate one.
| // R: Resource" | ||
| pub use const_effect_param::load; | ||
|
|
||
| // Don't render the host arg `true` passed to `Resource`. |
There was a problem hiding this comment.
This one was fixed by my “elide cross-crate default generic args” PR which ofc predates oli's PR, hence no test until now. Feature effects synthesizes the param #[rustc_host_param] const host: bool = true for const fn etc, therefore since my PR was merged true gets elided.
This PR introduces a more principled approach and not only elides host and true but arbitrary const values like false. I can't add a test for false since effects doesn't synthesize such code yet. My "generic const items: support effects" PR (#117530) would change that and rustdoc would handle it correctly (I've double-checked that).
| // R: Resource" | ||
| pub use const_effect_param::lock; | ||
|
|
||
| // Regression test for an issue introduced in PR #116670. |
| @@ -0,0 +1,16 @@ | |||
| #![feature(effects, const_trait_impl)] | |||
There was a problem hiding this comment.
I've renamed the test const-fn.rs to const-effect-param.rs since it's more accurate but git / GitHub doesn't display it as such due to the large number of additional changes in this file.
|
Thanks for the fix! @bors r+ rollup |
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#114316 (Add AIX platform support document) - rust-lang#117531 (rustdoc: properly elide cross-crate host effect args) - rust-lang#117650 (Add -Zcross-crate-inline-threshold=yes) - rust-lang#117663 (bump some deps) - rust-lang#117667 (Document clippy_config in nightly-rustc docs) - rust-lang#117698 (Clarify `space_between`) - rust-lang#117700 (coverage: Rename the `run-coverage` test mode to `coverage-run`) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#117531 - fmease:rustdoc-effects-properly-elide-x-crate-host-args, r=GuillaumeGomez rustdoc: properly elide cross-crate host effect args Fixes FIXMEs introduced in rust-lang#116670.
…nkov Reenable effects in libcore With rust-lang#116670, rust-lang#117531, and rust-lang#117171, I think we would be comfortable with re-enabling the effects feature for more testing in libcore. r? `@oli-obk` cc `@fmease` cc rust-lang#110395
Update Rust toolchain from nightly-2023-11-08 to nightly-2023-11-09 without any other source changes. This is an automatically generated pull request. If any of the CI checks fail, manual intervention is required. In such a case, review the changes at https://github.com/rust-lang/rust from rust-lang@7adc89b up to rust-lang@fdaaaf9. The log for this commit range is: rust-lang@fdaaaf9f92 Auto merge of rust-lang#116930 - RalfJung:raw-ptr-match, r=davidtwco rust-lang@30588657b7 avoid unnecessary nested conditionals rust-lang@90fdc1fc27 Auto merge of rust-lang#117716 - GuillaumeGomez:rollup-83gnhll, r=GuillaumeGomez rust-lang@9d3c80248b Rollup merge of rust-lang#117713 - GuillaumeGomez:document-hidden-json, r=notriddle rust-lang@d8c52b378d Rollup merge of rust-lang#117702 - davidtwco:target-tier-refactors, r=petrochenkov rust-lang@5d00a5d936 Rollup merge of rust-lang#117679 - aDotInTheVoid:yes-core, r=GuillaumeGomez rust-lang@c828371179 Rollup merge of rust-lang#117282 - clubby789:recover-wrong-function-header, r=TaKO8Ki rust-lang@e05e4f38b5 Rollup merge of rust-lang#117263 - onur-ozkan:change-id-fix, r=saethlin rust-lang@341efb1017 Auto merge of rust-lang#117560 - lqd:issue-117146, r=matthewjasper rust-lang@33edea60f0 Add test for reexported hidden item with `--document-hidden-items` rust-lang@28acba3c61 Auto merge of rust-lang#115460 - zachs18:borrowedcursor_write_no_panic, r=dtolnay rust-lang@755629fe59 Auto merge of rust-lang#117706 - matthiaskrgr:rollup-lscx7dg, r=matthiaskrgr rust-lang@e0cb1cc296 bootstrap: add more detail on change-id comments rust-lang@e878100386 bootstrap: improve `fn check_version` rust-lang@ae4d18b2da handle the case when the change-id isn't found rust-lang@7e4ffa98b5 Rollup merge of rust-lang#117700 - Zalathar:rename-run-coverage, r=onur-ozkan rust-lang@55306535dd Rollup merge of rust-lang#117698 - nnethercote:space_between-2, r=petrochenkov rust-lang@b1b5a8ea9d Rollup merge of rust-lang#117667 - Alexendoo:doc-clippy-config, r=albertlarsan68 rust-lang@adf4981969 Rollup merge of rust-lang#117663 - klensy:bump-deps, r=davidtwco rust-lang@8198864377 Rollup merge of rust-lang#117650 - saethlin:inline-me-please, r=davidtwco rust-lang@ba7ec56639 Rollup merge of rust-lang#117531 - fmease:rustdoc-effects-properly-elide-x-crate-host-args, r=GuillaumeGomez rust-lang@b74a84c0bc Rollup merge of rust-lang#114316 - ecnelises:aix_doc, r=workingjubilee rust-lang@fab1054e17 Auto merge of rust-lang#117542 - compiler-errors:only-normalize-predicate, r=lcnr rust-lang@750c2ecd15 Auto merge of rust-lang#116881 - LuuuXXX:issue-110087, r=onur-ozkan rust-lang@b9b7982f72 Add AIX platform-support doc rust-lang@ef7ebaa788 rustc_target: move file for uniformity rust-lang@1af256fe8a targets: move target specs to spec/targets rust-lang@76aa83e3e1 target: move base specs to spec/base rust-lang@a573880373 coverage: Rename the `run-coverage` test mode to `coverage-run` rust-lang@7cc997d373 Auto merge of rust-lang#117699 - weihanglo:update-cargo, r=weihanglo rust-lang@0670466e2c Update cargo rust-lang@438b9a6e82 More tests for token stream pretty-printing with adjacent punctuation. rust-lang@783d4b8b26 Clarify `space_between`. rust-lang@91cfcb0219 Auto merge of rust-lang#117484 - Zalathar:tests, r=cjgillot rust-lang@97c9d8f405 Only use normalize_param_env when normalizing predicate in check_item_bounds rust-lang@1b8dee19e8 Fix issue rust-lang#110087 rust-lang@0d5ec963bb Auto merge of rust-lang#117692 - matthiaskrgr:rollup-umaf5pr, r=matthiaskrgr rust-lang@f72e974e3f Rollup merge of rust-lang#117655 - compiler-errors:method-tweaks, r=estebank rust-lang@7552dd19ad Rollup merge of rust-lang#117625 - nnethercote:clippy-perf, r=cuviper rust-lang@3c6307240c Rollup merge of rust-lang#116399 - WaffleLapkin:erase_small_things, r=cjgillot rust-lang@b724d9c90e Rollup merge of rust-lang#113925 - clubby789:const-ctor-repeat, r=estebank rust-lang@fcdd99edca Add -Zcross-crate-inline-threshold=yes rust-lang@e8cf29b584 rustdoc: minor changes suggested by clippy perf lints. rust-lang@ff0b4b6091 Auto merge of rust-lang#117672 - lqd:ci-gcc-lld, r=Kobzol rust-lang@1b3733e5a4 rustc: minor changes suggested by clippy perf lints. rust-lang@eca9a1533f Add an explanation for `transmute_unchecked` rust-lang@1d1fe9a205 add note to remember to update a url when bumping to gcc 10.1.0 rust-lang@434b69a1d6 tests/rustdoc-json: Rewrite tests no not use `#![no_core]`. rust-lang@0875f456f1 tests/rustdoc-json: Remove more needless uses of `#![no_core]`. rust-lang@f784fa7bd9 tests/rustdoc-json: Remove some needless uses of `#![no_core]`. rust-lang@d73eaaac5f ci: bump gcc on dist x64 linux builder to 9.5 rust-lang@f2fd8ad788 Document clippy_config in nightly-rustc docs rust-lang@eed89185bb bump some deps rust-lang@0add056dee Rework print_disambiguation_help rust-lang@88a37acb26 Yeet MethodCallComponents rust-lang@4e6f438d2a coverage: Register `test::Coverage` as the test suite for `tests/coverage` rust-lang@49127c64d6 coverage: Migrate `tests/coverage-map` into `tests/coverage` rust-lang@e9d04c5e24 coverage: Migrate `tests/run-coverage` into `tests/coverage` rust-lang@aea7c27eae coverage: Set up a macro for declaring unified coverage test suites rust-lang@3509aed632 coverage: Add `./x.py test coverage`, an alias for `coverage-map` and `run-coverage` rust-lang@e585a99230 coverage: Give each coverage test mode a separate output directory rust-lang@211d4cee8e coverage: Copy all remaining run-coverage tests into coverage-map rust-lang@4b76b97bc8 coverage: Copy all remaining coverage-map tests into run-coverage rust-lang@f5df56b26b coverage: Flatten `coverage-map/status-quo/` into its parent directory rust-lang@8eef39f082 coverage: Remove `tests/coverage-map/if.rs` rust-lang@7f8a6de72c coverage: Use `-Copt-level=2` by default in run-coverage tests rust-lang@1dcdf83927 rustdoc: properly elide cross-crate host effect args rust-lang@2dff90dc23 add test for issue 117146 rust-lang@de7a8305ae traverse region graph instead of SCCs to compute polonius loan scopes rust-lang@03b24f2756 remove some dead code rust-lang@70a8e157ab make pointer_structural_match warn-by-default rust-lang@af6c7e0ca1 also lint against fn ptr and raw ptr nested inside the const rust-lang@bec88ad4aa patterns: reject raw pointers that are not just integers rust-lang@be0b42fabe Recover from incorrectly ordered/duplicated function keywords rust-lang@b3d50255d9 Use consisntent style of `size_of` in query type erasure rust-lang@61361bb212 Use `transmute_unchecked` and make the types explicit in query type erasure rust-lang@11a64a1834 don't panic in BorrowedCursor::write rust-lang@86b112204a Improve diagnostic for const ctors in array repeat expressions Co-authored-by: celinval <celinval@users.noreply.github.com>
Fixes FIXMEs introduced in #116670.