-
Notifications
You must be signed in to change notification settings - Fork 12.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 9 pull requests #119662
Rollup of 9 pull requests #119662
Commits on Dec 9, 2023
-
Configuration menu - View commit details
-
Copy full SHA for af4913f - Browse repository at this point
Copy the full SHA af4913fView commit details
Commits on Dec 26, 2023
-
Configuration menu - View commit details
-
Copy full SHA for f6a045c - Browse repository at this point
Copy the full SHA f6a045cView commit details -
Configuration menu - View commit details
-
Copy full SHA for e74339b - Browse repository at this point
Copy the full SHA e74339bView commit details
Commits on Jan 1, 2024
-
pass allow-{dirty,staged} to clippy
Signed-off-by: onur-ozkan <work@onurozkan.dev>
Configuration menu - View commit details
-
Copy full SHA for 96bd9cd - Browse repository at this point
Copy the full SHA 96bd9cdView commit details
Commits on Jan 4, 2024
-
Needle and haystack are actually not the same, they remain constant.
Configuration menu - View commit details
-
Copy full SHA for fdf9383 - Browse repository at this point
Copy the full SHA fdf9383View commit details
Commits on Jan 5, 2024
-
library: Add
allow(unused_assignments)
to custom MIR doctestThe lint is not yet reported due to span issues, but will be reported later.
Configuration menu - View commit details
-
Copy full SHA for deecbd8 - Browse repository at this point
Copy the full SHA deecbd8View commit details -
rustc_span: Remove
fn fresh_expansion
In the past it did create a fresh expansion, but now, after surviving a number of refactorings, it does not. Now it's just a thin wrapper around `apply_mark`.
Configuration menu - View commit details
-
Copy full SHA for 205fb75 - Browse repository at this point
Copy the full SHA 205fb75View commit details -
macro_rules: Add more tests for using
tt
in addition toident
Generally, `tt` and `ident` should behave identically, modulo the latter accepting only a subset of token trees.
Configuration menu - View commit details
-
Copy full SHA for c586fe4 - Browse repository at this point
Copy the full SHA c586fe4View commit details -
Configuration menu - View commit details
-
Copy full SHA for fb1cca2 - Browse repository at this point
Copy the full SHA fb1cca2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 508d1ff - Browse repository at this point
Copy the full SHA 508d1ffView commit details -
rustc_mir_transform: Make DestinationPropagation stable for queries
By using FxIndexMap instead of FxHashMap, so that the order of visiting of locals is deterministic. We also need to bless copy_propagation_arg.foo.DestinationPropagation.panic*.diff. Do not review the diff of the diff. Instead look at the diff file before and after this commit. Both before and after this commit, 3 statements are replaced with nop. It's just that due to change in ordering, different statements are replaced. But the net result is the same.
Configuration menu - View commit details
-
Copy full SHA for 95eb5bc - Browse repository at this point
Copy the full SHA 95eb5bcView commit details
Commits on Jan 6, 2024
-
Configuration menu - View commit details
-
Copy full SHA for d70f0e3 - Browse repository at this point
Copy the full SHA d70f0e3View commit details -
Remove ignore-stage1 that was added when changing error count msg
The bootstrap bump has happened, so the bootstrap compiler now contains the new diagnotic.
Configuration menu - View commit details
-
Copy full SHA for 5c74329 - Browse repository at this point
Copy the full SHA 5c74329View commit details -
This cuts down on the amount of data we need to ship and users need to keep on disk for each Rust toolchain. As noted in the added comment, there's not much going on in these executables, so the added benefit of symbols and debuginfo isn't large, while the cost is not insignificant. This takes each of the binaries (we store 4 identical copies under different names) from 3.7MB to 384KB.
Configuration menu - View commit details
-
Copy full SHA for 94a59d6 - Browse repository at this point
Copy the full SHA 94a59d6View commit details -
Rollup merge of rust-lang#118194 - notriddle:notriddle/tuple-unit, r=…
…GuillaumeGomez rustdoc: search for tuples and unit by type with `()` This feature extends rustdoc to support the syntax that most users will naturally attempt to use to search for tuples. Part of rust-lang#60485 Function signature searches already support tuples and unit. The explicit name `primitive:tuple` and `primitive:unit` can be used to match a tuple or unit, while `()` will match either one. It also follows the direction set by the actual language for parens as a group, so `(u8,)` will only match a tuple, while `(u8)` will match a plain, unwrapped byte—thanks to loose search semantics, it will also match the tuple. ## Preview * [`option<t>, option<u> -> (t, u)`](<https://notriddle.com/rustdoc-html-demo-5/tuple-unit/std/index.html?search=option%3Ct%3E%2C option%3Cu%3E -%3E (t%2C u)>) * [`[t] -> (t,)`](<https://notriddle.com/rustdoc-html-demo-5/tuple-unit/std/index.html?search=[t] -%3E (t%2C)>) * [`(ipaddr,) -> socketaddr`](<https://notriddle.com/rustdoc-html-demo-5/tuple-unit/std/index.html?search=(ipaddr%2C) -%3E socketaddr>) ## Motivation When type-based search was first landed, it was directly [described as incomplete][a comment]. [a comment]: rust-lang#23289 (comment) Filling out the missing functionality is going to mean adding support for more of Rust's [type expression] syntax, such as tuples (in this PR), references, raw pointers, function pointers, and closures. [type expression]: https://doc.rust-lang.org/reference/types.html#type-expressions There does seem to be demand for this sort of thing, such as [this Discord message](https://discord.com/channels/442252698964721669/443150878111694848/1042145740065099796) expressing regret at rustdoc not supporting tuples in search queries. ## Reference description (from the Rustdoc book) <table> <thead> <tr> <th>Shorthand</th> <th>Explicit names</th> </tr> </thead> <tbody> <tr><td colspan="2">Before this PR</td></tr> <tr> <td><code>[]</code></td> <td><code>primitive:slice</code> and/or <code>primitive:array</code></td> </tr> <tr> <td><code>[T]</code></td> <td><code>primitive:slice<T></code> and/or <code>primitive:array<T></code></td> </tr> <tr> <td><code>!</code></td> <td><code>primitive:never</code></td> </tr> <tr><td colspan="2">After this PR</td></tr> <tr> <td><code>()</code></td> <td><code>primitive:unit</code> and/or <code>primitive:tuple</code></td> </tr> <tr> <td><code>(T)</code></td> <td><code>T</code></td> </tr> <tr> <td><code>(T,)</code></td> <td><code>primitive:tuple<T></code></td> </tr> </tbody> </table> A single type expression wrapped in parens is the same as that type expression, since parens act as the grouping operator. If they're empty, though, they will match both `unit` and `tuple`, and if there's more than one type (or a trailing or leading comma) it is the same as `primitive:tuple<...>`. However, since items can be left out of the query, `(T)` will still return results for types that match tuples, even though it also matches the type on its own. That is, `(u32)` matches `(u32,)` for the exact same reason that it also matches `Result<u32, Error>`. ## Future direction The [type expression grammar](https://doc.rust-lang.org/reference/types.html#type-expressions) from the Reference is given below: <pre><code>Syntax Type : TypeNoBounds | <a href="https://doc.rust-lang.org/reference/types/impl-trait.html">ImplTraitType</a> | <a href="https://doc.rust-lang.org/reference/types/trait-object.html">TraitObjectType</a> <br> TypeNoBounds : <a href="https://doc.rust-lang.org/reference/types.html#parenthesized-types">ParenthesizedType</a> | <a href="https://doc.rust-lang.org/reference/types/impl-trait.html">ImplTraitTypeOneBound</a> | <a href="https://doc.rust-lang.org/reference/types/trait-object.html">TraitObjectTypeOneBound</a> | <a href="https://doc.rust-lang.org/reference/paths.html#paths-in-types">TypePath</a> | <a href="https://doc.rust-lang.org/reference/types/tuple.html#tuple-types">TupleType</a> | <a href="https://doc.rust-lang.org/reference/types/never.html">NeverType</a> | <a href="https://doc.rust-lang.org/reference/types/pointer.html#raw-pointers-const-and-mut">RawPointerType</a> | <a href="https://doc.rust-lang.org/reference/types/pointer.html#shared-references-">ReferenceType</a> | <a href="https://doc.rust-lang.org/reference/types/array.html">ArrayType</a> | <a href="https://doc.rust-lang.org/reference/types/slice.html">SliceType</a> | <a href="https://doc.rust-lang.org/reference/types/inferred.html">InferredType</a> | <a href="https://doc.rust-lang.org/reference/paths.html#qualified-paths">QualifiedPathInType</a> | <a href="https://doc.rust-lang.org/reference/types/function-pointer.html">BareFunctionType</a> | <a href="https://doc.rust-lang.org/reference/macros.html#macro-invocation">MacroInvocation</a> </code></pre> ImplTraitType and TraitObjectType (and ImplTraitTypeOneBound and TraitObjectTypeOneBound) are not yet implemented. They would mostly desugar to `trait:`, similarly to how `!` desugars to `primitive:never`. ParenthesizedType and TuplePath are added in this PR. TypePath is already implemented (except const generics, which is not planned, and function-like trait syntax, which is planned as part of closure support). NeverType is already implemented. RawPointerType and ReferenceType require parsing and fixes to the search index to store this information, but otherwise their behavior seems simple enough. Just like tuples and slices, `&T` would be equivalent to `primitive:reference<T>`, `&mut T` would be equivalent to `primitive:reference<keyword:mut, T>`, `*T` would be equivalent to `primitive:pointer<T>`, `*mut T` would be equivalent to `primitive:pointer<keyword:mut, T>`, and `*const T` would be equivalent to `primitive:pointer<keyword:const, T>`. Lifetime generics support is not planned, because lifetime subtyping seems too complicated. ArrayType is subsumed by SliceType right now. Implementing const generics is not planned, because it seems like it would require a lot of implementation complexity for not much gain. InferredType isn't really covered right now. Its semantics in a search context are not obvious. QualifiedPathInType is not implemented, and it is not planned. I would need a use case to justify it, and act as a guide for what the exact semantics should be. BareFunctionType is not implemented. Along with function-like trait syntax, which is formally considered a TypePath, it's the biggest missing feature to be able to do structured searches over generic APIs like `Option`. MacroInvocation is not parsed (macro names are, but they don't mean the same thing here at all). Those are gone by the time Rustdoc sees the source code.
Configuration menu - View commit details
-
Copy full SHA for d5fd88c - Browse repository at this point
Copy the full SHA d5fd88cView commit details -
Rollup merge of rust-lang#118781 - RalfJung:core-panic-feature, r=the…
…8472 merge core_panic feature into panic_internals I don't know why those are two separate features, but it does not seem intentional. This merge is useful because with rust-lang#118123, panic_internals is recognized as an internal feature, but core_panic is not -- but core_panic definitely should be internal.
Configuration menu - View commit details
-
Copy full SHA for 923578e - Browse repository at this point
Copy the full SHA 923578eView commit details -
Rollup merge of rust-lang#119486 - onur-ozkan:clippy-allow-dirty-and-…
…staged, r=Mark-Simulacrum pass allow-{dirty,staged} to clippy Support of Clippy's `--allow-dirty` and `--allow-staged` flags on bootstrap. Resolves rust-lang#119483
Configuration menu - View commit details
-
Copy full SHA for 94bfc28 - Browse repository at this point
Copy the full SHA 94bfc28View commit details -
Rollup merge of rust-lang#119591 - Enselic:DestinationPropagation-sta…
…ble, r=cjgillot rustc_mir_transform: Make DestinationPropagation stable for queries By using `FxIndexMap` instead of `FxHashMap`, so that the order of visiting of locals is deterministic. We also need to bless `copy_propagation_arg.foo.DestinationPropagation.panic*.diff`. Do not review the diff of the diff. Instead look at the diff files before and after this commit. Both before and after this commit, 3 statements are replaced with nop. It's just that due to change in ordering, different statements are replaced. But the net result is the same. In other words, compare this diff (before fix): * https://github.com/rust-lang/rust/blob/090d5eac722000906cc00d991f2bf052b0e388c3/tests/mir-opt/dest-prop/copy_propagation_arg.foo.DestinationPropagation.panic-unwind.diff With this diff (after fix): * https://github.com/rust-lang/rust/blob/f603babd63a607e155609dc0277806e559626ea0/tests/mir-opt/dest-prop/copy_propagation_arg.foo.DestinationPropagation.panic-unwind.diff and you can see that both before and after the fix, we replace 3 statements with `nop`s. I find it _slightly_ surprising that the test this PR affects did not previously fail spuriously due to the indeterminism of `FxHashMap`, but I guess in can be explained with the predictability of small `FxHashMap`s with `usize` (`Local`) keys, or something along those lines. This should fix [this](rust-lang#119252 (comment)) comment, but I wanted to make a separate PR for this fix for a simpler development and review process. Part of rust-lang#84447 which is E-help-wanted. r? `@cjgillot` who is reviewer for the highly related PR rust-lang#119252.
Configuration menu - View commit details
-
Copy full SHA for 909f2b6 - Browse repository at this point
Copy the full SHA 909f2b6View commit details -
Rollup merge of rust-lang#119595 - mbbill:patch-1, r=Mark-Simulacrum
Fixed ambiguity in hint.rs Needle and haystack are actually not the same, they remain constant.
Configuration menu - View commit details
-
Copy full SHA for cda0d08 - Browse repository at this point
Copy the full SHA cda0d08View commit details -
Rollup merge of rust-lang#119624 - petrochenkov:dialoc4, r=compiler-e…
…rrors rustc_span: More consistent span combination operations Also add more tests for using `tt` in addition to `ident`, and some other minor tweaks, see individual commits. This is a part of rust-lang#119412 that doesn't yet add side tables for metavariable spans.
Configuration menu - View commit details
-
Copy full SHA for 1d6ab69 - Browse repository at this point
Copy the full SHA 1d6ab69View commit details -
Rollup merge of rust-lang#119653 - devnexen:update_fuchsia_compiler_r…
…t_support, r=petrochenkov compiler: update Fuchsia sanitizer support.
Configuration menu - View commit details
-
Copy full SHA for 54df1b3 - Browse repository at this point
Copy the full SHA 54df1b3View commit details -
Rollup merge of rust-lang#119655 - Nilstrieb:cleanup-the-error-count-…
…monster-mess, r=WaffleLapkin Remove ignore-stage1 that was added when changing error count msg The bootstrap bump has happened, so the bootstrap compiler now contains the new diagnostic. this was added in rust-lang#118138
Configuration menu - View commit details
-
Copy full SHA for 6ab546e - Browse repository at this point
Copy the full SHA 6ab546eView commit details -
Rollup merge of rust-lang#119661 - Mark-Simulacrum:shrink-lld-wrapper…
…, r=Kobzol Strip lld-wrapper binaries This cuts down on the amount of data we need to ship and users need to keep on disk for each Rust toolchain. As noted in the added comment, there's not much going on in these executables, so the added benefit of symbols and debuginfo isn't large, while the cost is not insignificant. This takes each of the binaries (we store 4 identical copies under different names) from 3.7MB to 384KB.
Configuration menu - View commit details
-
Copy full SHA for 5f0f028 - Browse repository at this point
Copy the full SHA 5f0f028View commit details