about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2022-04-23Erase type params when suggesting fully qualified pathEsteban Küber-0/+57
When suggesting the use of a fully qualified path for a method call that is ambiguous because it has multiple candidates, erase type params in the resulting code, as they would result in an error when applied. We replace them with `_` in the output to rely on inference. There might be cases where this still produces slighlty incomplete suggestions, but it otherwise produces many more errors in relatively common cases. Fix #96292
2022-04-23Auto merge of #95971 - workingjubilee:no-weird-fp-in-const, r=oli-obkbors-30/+181
No "weird" floats in const fn {from,to}_bits I suspect this code is subtly incorrect and that we don't even e.g. use x87-style floats in CTFE, so I don't have to guard against that case. A future PR will be hopefully removing them from concern entirely, anyways. But at the moment I wanted to get this rolling because small questions like that one seem best answered by review. r? `@oli-obk` cc `@eddyb` `@thomcc`
2022-04-23Auto merge of #96316 - michaelwoerister:debuginfo-fix-unit-msvc, r=wesleywiserbors-0/+71
debuginfo: Emit ZST struct debuginfo for unit type when CPP-like debuginfo is enabled As already discovered in https://github.com/rust-lang/rust/commit/24a728a8eb4832568509eb757c2374934a76cb98, PDB does not play well with custom basic types. This PR extends to the fix to `()`: Instead of a custom basic type, we treat it like an empty tuple (i.e. it is described as a struct which happens to have no fields). Before this change anything with a `()` in it would cause trouble, which is especially bad for `*const ()` and `*mut ()` which are often used for opaque pointers. E.g. the test case added in this PR would look like: ``` 0:000> dx _ref Error: Unable to bind name '_ref' 0:000> dx _ptr Error: Unable to bind name '_ptr' 0:000> dx _local Error: Unable to bind name '_local' 0:000> dx _field,d _field,d [Type: unit_type::_TypeContainingUnitField] [+0x008] _a : 123 [Type: unsigned int] [+0x000] _unit : Unexpected failure to dereference object [+0x000] _b : 456 [Type: unsigned __int64] 0:000> dx ((__int64 *)_ptr),x Error: Unable to bind name '_ptr' ``` With the PR it produces the expected output: ``` 0:000> dx _ref _ref : 0x7ff6f2012230 : () [Type: tuple$<> *] 0:000> dx _ptr _ptr : 0x7e8ddffc20 : () [Type: tuple$<> *] 0:000> dx _local _local : () [Type: tuple$<>] 0:000> dx _field,d _field,d [Type: unit_type::_TypeContainingUnitField] [+0x008] _a : 123 [Type: unsigned int] [+0x000] _unit : () [Type: tuple$<>] [+0x000] _b : 456 [Type: unsigned __int64] 0:000> dx ((__int64 *)_ptr),x ((__int64 *)_ptr),x : 0x7e8ddffc20 : 0x1122334455667788 [Type: __int64 *] ``` r? `@wesleywiser`
2022-04-22Auto merge of #96322 - matthiaskrgr:rollup-9xejxrf, r=matthiaskrgrbors-62/+83
Rollup of 3 pull requests Successful merges: - #96272 (Update `validate_uninhabited_zsts.rs` test after MIR building changes) - #96273 (Make `E0117` error clear) - #96315 (Make the lifetime accurate which is used in the region constraints part) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-04-22Rollup merge of #96273 - TaKO8Ki:make-E0117-error-clear, r=davidtwcoMatthias Krüger-28/+28
Make `E0117` error clear closes #96227
2022-04-22Rollup merge of #96272 - tmiasko:validate-uninhabited, r=RalfJungMatthias Krüger-34/+55
Update `validate_uninhabited_zsts.rs` test after MIR building changes to ensure that it still tests validation, instead of failing earlier on during evaluation. r? `@RalfJung`
2022-04-22Auto merge of #96301 - notriddle:notriddle/synthetic-impl-prim, r=GuillaumeGomezbors-4/+9
rustdoc: make primitive synthetic impls for correct doc module This improves the accuracy of libcore primitive docs, which was missing the blanket and auto impls for most primitive types. To test this, compare nightly [libcore::str] docs, which lack auto traits like Send, with [std::str] docs, which show them. [libcore::str]: https://doc.rust-lang.org/nightly/core/primitive.str.html [libstd::str]: https://doc.rust-lang.org/nightly/std/primitive.str.html It also avoids getting synthetic impls for primitive types on crates that do not actually show them. <details> <summary>Before and After trace logs</summary> ## Before [notriddle@deep-thought test-dingus]$ RUSTDOC_LOG=rustdoc=trace rustdoc +nightly test.rs 2>&1 | grep -E 'get_blanket_impls\(' TRACE rustdoc::clean::blanket_impl get_blanket_impls(Whatever) TRACE rustdoc::clean::blanket_impl get_blanket_impls(isize) TRACE rustdoc::clean::blanket_impl get_blanket_impls([T]) TRACE rustdoc::clean::blanket_impl get_blanket_impls([u8]) TRACE rustdoc::clean::blanket_impl get_blanket_impls([T]) TRACE rustdoc::clean::blanket_impl get_blanket_impls([u8]) TRACE rustdoc::clean::blanket_impl get_blanket_impls(char) TRACE rustdoc::clean::blanket_impl get_blanket_impls(u128) TRACE rustdoc::clean::blanket_impl get_blanket_impls(u16) TRACE rustdoc::clean::blanket_impl get_blanket_impls(i128) TRACE rustdoc::clean::blanket_impl get_blanket_impls(i16) TRACE rustdoc::clean::blanket_impl get_blanket_impls(str) TRACE rustdoc::clean::blanket_impl get_blanket_impls(str) TRACE rustdoc::clean::blanket_impl get_blanket_impls(f64) TRACE rustdoc::clean::blanket_impl get_blanket_impls(f64) TRACE rustdoc::clean::blanket_impl get_blanket_impls(u64) TRACE rustdoc::clean::blanket_impl get_blanket_impls(u8) TRACE rustdoc::clean::blanket_impl get_blanket_impls(i64) TRACE rustdoc::clean::blanket_impl get_blanket_impls(i8) TRACE rustdoc::clean::blanket_impl get_blanket_impls(*const T) TRACE rustdoc::clean::blanket_impl get_blanket_impls(*mut T) TRACE rustdoc::clean::blanket_impl get_blanket_impls(*const [T]) TRACE rustdoc::clean::blanket_impl get_blanket_impls(*mut [T]) TRACE rustdoc::clean::blanket_impl get_blanket_impls([T; N]) TRACE rustdoc::clean::blanket_impl get_blanket_impls(bool) TRACE rustdoc::clean::blanket_impl get_blanket_impls(f32) TRACE rustdoc::clean::blanket_impl get_blanket_impls(f32) TRACE rustdoc::clean::blanket_impl get_blanket_impls(u32) TRACE rustdoc::clean::blanket_impl get_blanket_impls(usize) TRACE rustdoc::clean::blanket_impl get_blanket_impls(i32) ## After [notriddle@deep-thought test-dingus]$ RUSTDOC_LOG=rustdoc=trace rustdoc +dev test.rs 2>&1 | grep -E 'get_blanket_impls\(' TRACE rustdoc::clean::blanket_impl get_blanket_impls(Whatever) </details>
2022-04-22debuginfo: Emit ZST struct debuginfo for unit type when CPP-like debuginfo ↵Michael Woerister-0/+71
is enabled (instead of custom basic type).
2022-04-22Auto merge of #96197 - erikdesjardins:scalarpairenum, r=oli-obkbors-0/+774
Mark payload fields of ScalarPair enums as Scalar::Union when they're not always initialized Fixes #96158 r? `@RalfJung`
2022-04-22Auto merge of #96207 - nikic:distcheck-dir, r=Mark-Simulacrumbors-1/+3
Ensure existance of dist directory when creating tarball I'm not sure why this works in CI, but this is necessary to make distcheck (including the `x86_64-linux-distcheck` image) run on Fedora 35.
2022-04-22normalize out pref_align (copied from another test)Erik Desjardins-56/+23
2022-04-22Auto merge of #96144 - c410-f3r:z-errors, r=petrochenkovbors-1/+1
Move some tests to more reasonable places cc #73494 r? `@petrochenkov`
2022-04-22Auto merge of #96282 - petrochenkov:unindent, r=GuillaumeGomezbors-133/+89
rustdoc: Unindent doc fragments on `Attributes` construction `Attributes` can be constructed at arbitrary points, even after the `unindent_comments` pass. `Attributes` that are constructed too late end up unindented. All doc fragments need to be eventually indented before use, so there are no reasons to not do this immediately during their construction. Fixes https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/.60unindent_comments.60.20cannot.20work.20as.20a.20separate.20pass. I'm not sure how to make a minimized reproduction, but unindenting the fragments during their construction should fix the issue.. by construction, and I also verified that all doc strings now hit the `resolver_caches.markdown_links` cache in https://github.com/rust-lang/rust/pull/94857.
2022-04-21rustdoc: make primitive synthetic impls for correct doc moduleMichael Howell-4/+9
This improves the accuracy of libcore primitive docs, which was missing the blanket and auto impls for most primitive types. To test this, compare nightly [libcore::str] docs, which lack auto traits like Send, with [std::str] docs, which show them. [libcore::str]: https://doc.rust-lang.org/nightly/core/primitive.str.html [libstd::str]: https://doc.rust-lang.org/nightly/std/primitive.str.html It also avoids getting synthetic impls for primitive types on crates that do not actually show them. <details> <summary>Before and After trace logs</summary> Before: [notriddle@deep-thought test-dingus]$ RUSTDOC_LOG=rustdoc=trace rustdoc +nightly test.rs 2>&1 | grep -E 'get_blanket_impls\(' TRACE rustdoc::clean::blanket_impl get_blanket_impls(Whatever) TRACE rustdoc::clean::blanket_impl get_blanket_impls(isize) TRACE rustdoc::clean::blanket_impl get_blanket_impls([T]) TRACE rustdoc::clean::blanket_impl get_blanket_impls([u8]) TRACE rustdoc::clean::blanket_impl get_blanket_impls([T]) TRACE rustdoc::clean::blanket_impl get_blanket_impls([u8]) TRACE rustdoc::clean::blanket_impl get_blanket_impls(char) TRACE rustdoc::clean::blanket_impl get_blanket_impls(u128) TRACE rustdoc::clean::blanket_impl get_blanket_impls(u16) TRACE rustdoc::clean::blanket_impl get_blanket_impls(i128) TRACE rustdoc::clean::blanket_impl get_blanket_impls(i16) TRACE rustdoc::clean::blanket_impl get_blanket_impls(str) TRACE rustdoc::clean::blanket_impl get_blanket_impls(str) TRACE rustdoc::clean::blanket_impl get_blanket_impls(f64) TRACE rustdoc::clean::blanket_impl get_blanket_impls(f64) TRACE rustdoc::clean::blanket_impl get_blanket_impls(u64) TRACE rustdoc::clean::blanket_impl get_blanket_impls(u8) TRACE rustdoc::clean::blanket_impl get_blanket_impls(i64) TRACE rustdoc::clean::blanket_impl get_blanket_impls(i8) TRACE rustdoc::clean::blanket_impl get_blanket_impls(*const T) TRACE rustdoc::clean::blanket_impl get_blanket_impls(*mut T) TRACE rustdoc::clean::blanket_impl get_blanket_impls(*const [T]) TRACE rustdoc::clean::blanket_impl get_blanket_impls(*mut [T]) TRACE rustdoc::clean::blanket_impl get_blanket_impls([T; N]) TRACE rustdoc::clean::blanket_impl get_blanket_impls(bool) TRACE rustdoc::clean::blanket_impl get_blanket_impls(f32) TRACE rustdoc::clean::blanket_impl get_blanket_impls(f32) TRACE rustdoc::clean::blanket_impl get_blanket_impls(u32) TRACE rustdoc::clean::blanket_impl get_blanket_impls(usize) TRACE rustdoc::clean::blanket_impl get_blanket_impls(i32) After: [notriddle@deep-thought test-dingus]$ RUSTDOC_LOG=rustdoc=trace rustdoc +dev test.rs 2>&1 | grep -E 'get_blanket_impls\(' TRACE rustdoc::clean::blanket_impl get_blanket_impls(Whatever) </details>
2022-04-22Auto merge of #96261 - petrochenkov:doclink7, r=GuillaumeGomezbors-7/+20
rustdoc: Resolve some more doc links early Trying another subset of https://github.com/rust-lang/rust/pull/94857 that is not too expensive.
2022-04-21Auto merge of #96293 - Dylan-DPC:rollup-saipx8c, r=Dylan-DPCbors-0/+0
Rollup of 5 pull requests Successful merges: - #95434 (Only output DepKind in dump-dep-graph.) - #96248 (Stop using a string literal as a format argument) - #96251 (Update books) - #96269 (errors: minor translation-related changes) - #96289 (Remove redundant `format!`s) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-04-21Update `validate_uninhabited_zsts.rs` test after MIR building changesTomasz Miąsko-34/+55
to ensure that it still tests validation, instead of failing earlier on during evaluation.
2022-04-21Rollup merge of #96251 - ehuss:update-books, r=ehussDylan DPC-0/+0
Update books ## book 3 commits in 765318b844569a642ceef7bf1adab9639cbf6af3..de0dbffc5812fd885700874e8d258dd334733ac4 2022-04-12 21:14:47 -0400 to 2022-04-18 19:29:45 -0400 - Remove duplicate text - Add missing punctuation mark in ch16-01 - Update main.rs ## rust-by-example 1 commits in c2a98d9fc5d29c481d42052fbeccfde15ed03116..44a80e8d8bfc5881c9bd69a2cb3a570776ee4181 2022-04-08 06:44:18 -0300 to 2022-04-19 07:46:28 -0300 - Use rust 2018 module file hierarchy (rust-lang/rust-by-example#1532) ## rustc-dev-guide 6 commits in eeb5a83c15b6ae60df3e4f19207376b22c6fbc4c..043e60f4f191651e9f8bf52fa32df14defbb23d9 2022-04-11 23:29:48 +0900 to 2022-04-20 18:57:49 +0900 - Fix a small typo (rust-lang/rustc-dev-guide#1343) - Extend debugging llvm section (rust-lang/rustc-dev-guide#1290) - Send people doing *library* stabilizations over to the std-dev-guide (rust-lang/rustc-dev-guide#1317) - Fix typo serious-&gt;series (rust-lang/rustc-dev-guide#1336) - Minor type fix (rust-lang/rustc-dev-guide#1337) - sessiondiagnostic: translation (rust-lang/rustc-dev-guide#1333) ## embedded-book 3 commits in a6de8b6e3ea5d4f0de8b7b9a7e5c1405dc2c2ddb..f7cefbb995eec8c6148f213235e9e2e03268e775 2022-03-17 21:21:39 +0000 to 2022-04-20 10:38:51 +0000 - Fix use of unaligned references in example (rust-embedded/book#317) - Correct C interop declarations (rust-embedded/book#315) - Update index.md (rust-embedded/book#316)
2022-04-21Auto merge of #96260 - Kobzol:rustdoc-idmap, r=petrochenkovbors-44/+49
rustdoc: Optimize IdMap Slightly optimizes `IdMap`, which is hot in `markdown_links` (context [here](https://github.com/rust-lang/rust/pull/96135#issuecomment-1103539052)). There are more improvements that can be made near this place, but this seemed like an easy win locally (although I tried it on top of https://github.com/rust-lang/rust/pull/94857, so let's see what happens without that PR). r? `@petrochenkov`
2022-04-21Move some tests to more reasonable directoriesCaio-1/+1
2022-04-21rustdoc: Unindent doc fragments on `Attributes` constructionVadim Petrochenkov-133/+89
2022-04-21Auto merge of #96003 - aswild:pr/bootstrap-subcommands-cleanup, r=jyn514bors-103/+85
bootstrap: consolidate subcommand parsing and matching There's several places where the x.py command names are matched as strings, leading to some inconsistencies and opportunities for cleanup. * Add Format, Clean, and Setup variants to builder::Kind. * Use Kind to parse the x.py subcommand name (including aliases) * Match on the subcommand Kind rather than strings when handling options and help text. * Several subcommands don't display any paths when run with `-h -v` even though the help text indicates that they should. Fix this and refactor so that manually keeping matches in sync isn't necessary. Fixes #95937
2022-04-21Auto merge of #95828 - vacuus:rustdoc-print-where-clause, r=notriddlebors-70/+62
rustdoc: Clean up `html::format::print_where_clause` (Arguably) closes https://github.com/rust-lang/rust/issues/95814
2022-04-21make `E0117` error clearTakayuki Maeda-28/+28
2022-04-21Auto merge of #95612 - davidtwco:split-debuginfo-in-bootstrap, r=Mark-Simulacrumbors-13/+59
bootstrap: add split-debuginfo config Replace `run-dysutil` option with more general `split-debuginfo` option that works on all platforms. r? `@Mark-Simulacrum`
2022-04-21Auto merge of #96263 - Dylan-DPC:rollup-0eofl13, r=Dylan-DPCbors-520/+2336
Rollup of 5 pull requests Successful merges: - #90630 (Create real parser for search queries) - #96193 ([fuchsia] Add implementation for `current_exe`) - #96196 (Remove assertion that all paths in `ShouldRun` exist) - #96228 (Fix locations for intrinsics impls and change to links) - #96236 (Add an explicit `Span` field to `OutlivesConstraint`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-04-20rustdoc: Clean up `html::format::print_where_clause`Roc Yu-70/+62
2022-04-20Auto merge of #96254 - RalfJung:miri, r=RalfJungbors-6/+8
update Miri Fixes https://github.com/rust-lang/rust/issues/96239 r? `@ghost`
2022-04-21Rollup merge of #96236 - Aaron1011:constraint-debug, r=jackh726Dylan DPC-58/+30
Add an explicit `Span` field to `OutlivesConstraint` Previously, we would retrieve the span from the `Body` using the `locations` field. However, we may end up changing the `locations` field when moving a constraint from a promoted to a different body. We now store the original `Span` in a dedication field, so that changes to the `locations` do not affect the quality of our diagnostics.
2022-04-21Rollup merge of #96196 - jyn514:no-assertion, r=Mark-SimulacrumDylan DPC-5/+7
Remove assertion that all paths in `ShouldRun` exist This breaks on submodules (see #96188). Disable the assertion for now until I can think of a proper fix. This doesn't revert any of the changes in `Step`s themselves, only what `ShouldRun::paths` does.
2022-04-21Rollup merge of #90630 - GuillaumeGomez:improve-rustdoc-search, r=notriddleDylan DPC-457/+2299
Create real parser for search queries You can test it [here](https://rustdoc.crud.net/imperio/improve-rustdoc-search/std/index.html). This PR adds a real parser for the query engine in rustdoc. The parser is quite simple but it allows to makes query handling much easier. I added a new testsuite to ensure it works as expected and ran fuzzing checks on it for a few hours without problems. So about the parser: as you can see in the screenshot, it handles recursive generics parsing. It also allows to set which item should use exact matching by adding double-quotes around it (look for `exact_search` in the screenshot). Now about the query engine itself: I simplified it a lot thanks to the parsed query. It behaves mostly the same when there is only one argument, but is much more powerful when there are more than one. When making this change, we also removed the support for multi-query. PS: A big part of the PR is tests and test-related code. :) r? `@camelid`
2022-04-20update MiriRalf Jung-6/+8
2022-04-21[WIP] rustdoc: Resolve some more doc links earlyVadim Petrochenkov-7/+20
2022-04-21rustdoc: Optimize IdMapJakub Beránek-44/+49
2022-04-20Auto merge of #96187 - GuillaumeGomez:potential-intra-doc-links-filtering, ↵bors-1/+13
r=notriddle Prevent `<>` links to be interpreted for intra-doc links As discussed in [this thread](https://github.com/rust-lang/rust/pull/96135#discussion_r852107956). As mentioned, the intra-doc RFC states that `<>` links shouldn't be potential intra-doc links: https://rust-lang.github.io/rfcs/1946-intra-rustdoc-links.html#no-autolinks-style. I renamed `markdown_links` into `potential_intra_doc_markdown_links` to make it more obvious what it's doing. cc `@petrochenkov` r? `@notriddle`
2022-04-20Extend `handleSingleArg` documentationGuillaume Gomez-0/+4
2022-04-20Auto merge of #96253 - Dylan-DPC:rollup-87hpds5, r=Dylan-DPCbors-93/+154
Rollup of 6 pull requests Successful merges: - #93313 (Check if call return type is visibly uninhabited when building MIR) - #96160 (Miri/interpreter debugging tweaks) - #96167 (Replace sys/unix/weak AtomicUsize with AtomicPtr) - #96168 (Improve AddrParseError description) - #96206 (Use sys::unix::locks::futex* on wasm+atomics.) - #96234 (remove_dir_all_recursive: treat ELOOP the same as ENOTDIR) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-04-20Remove `<>` links to be potential intra-doc linksGuillaume Gomez-1/+13
2022-04-20Rollup merge of #93313 - tmiasko:uninhabited, r=tmandryDylan DPC-93/+154
Check if call return type is visibly uninhabited when building MIR The main motivation behind the change is to expose information about diverging calls to the generator transform and match the precision of drop range tracking which already understands that call expressions with visibly uninhabited types diverges. This change should also accept strictly more programs than before. That is programs that were previously rejected due to errors raised by control-flow sensitive checks in a code that is no longer considered reachable. Fixes #93161.
2022-04-20Auto merge of #96250 - ehuss:update-cargo, r=ehussbors-0/+3
Update cargo 7 commits in dba5baf4345858c591517b24801902a062c399f8..edffc4ada3d77799e5a04eeafd9b2f843d29fc23 2022-04-13 21:58:27 +0000 to 2022-04-19 17:38:29 +0000 - Document cargo-add (rust-lang/cargo#10578) - feat: Support '-F' as an alias for '--features' (rust-lang/cargo#10576) - Completion support for `cargo-add` (rust-lang/cargo#10577) - Add a link to the document in the timings report (rust-lang/cargo#10492) - feat: Import cargo-add into cargo (rust-lang/cargo#10472) - Part 8 of RFC2906 - Keep `InheritableFields` in a `LazyCell` inside `… (rust-lang/cargo#10568) - Part 7 of RFC2906 - Add support for inheriting `exclude` and `include` (rust-lang/cargo#10565)
2022-04-20Update booksEric Huss-0/+0
2022-04-20Update cargoEric Huss-0/+3
2022-04-20Auto merge of #96135 - petrochenkov:doclink6, r=GuillaumeGomezbors-131/+223
rustdoc: Optimize and refactor doc link resolution One more subset of https://github.com/rust-lang/rust/pull/94857 that should bring perf improvements rather than regressions + a couple more optimizations on top of it. It's better to read individual commits and their descriptions to understand the changes. The `may_have_doc_links` optimization is not *very* useful here, but it's much more important for https://github.com/rust-lang/rust/pull/94857. Closes https://github.com/rust-lang/rust/issues/96079
2022-04-19Add an explicit `Span` field to `OutlivesConstraint`Aaron Hill-58/+30
Previously, we would retrieve the span from the `Body` using the `locations` field. However, we may end up changing the `locations` field when moving a constraint from a promoted to a different body. We now store the original `Span` in a dedication field, so that changes to the `locations` do not affect the quality of our diagnostics.
2022-04-20bootstrap: non-bootstrap windows split debuginfoDavid Wood-7/+11
Temporarily, only enable split debuginfo on Windows if not building with the boostrap compiler as there is a bug that isn't fixed in the bootstrap compiler which would result in `thorin` being run on Windows. Signed-off-by: David Wood <david.wood@huawei.com>
2022-04-19Rollup merge of #95813 - Urgau:rustdoc-where-clause-space, r=GuillaumeGomezDylan DPC-1/+19
Remove extra space before a where clause Remove extra space before where clause in the generated documentation. The fix is to move the space before the break-line so that it doesn't appear visually but is still here. Removing it completely would create things like this `impl<D> Delta<D>where D: MyTrait` (missing a space before the where) which I don't think we want. Added two regression test, first one test that the `<br>` is after the space and the second check that the `<br>` is before the spaces. Before: ![image](https://user-images.githubusercontent.com/3616612/162475212-d4bb6727-ed66-4a55-a4a2-4f55189bf8bd.png) After: ![image](https://user-images.githubusercontent.com/3616612/162475467-508fd082-60a7-4a8c-b693-8b188e8843e6.png) r? ``@GuillaumeGomez``
2022-04-19Rollup merge of #95740 - Amanieu:kreg0, r=nagisaDylan DPC-14/+14
asm: Add a kreg0 register class on x86 which includes k0 Previously we only exposed a kreg register class which excludes the k0 register since it can't be used in many instructions. However k0 is a valid register and we need to have a way of marking it as clobbered for clobber_abi. Fixes #94977
2022-04-19Add regression test for #96079Guillaume Gomez-0/+26
2022-04-19rustdoc: Sligthly optimize `Attributes` construction and processing before ↵Vadim Petrochenkov-44/+31
doc link resolution
2022-04-19rustdoc: Cache preprocessed markdown linksVadim Petrochenkov-45/+68