-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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 7 pull requests #109720
Rollup of 7 pull requests #109720
Conversation
Adapts the wrapper for the LLVM commit llvm/llvm-project@377e131.
(Only the lifetime spans changed.)
These are internal features used for a specific purpose, and modules without imports are enough for that purpose.
As I've been trying to replace a `Vec` with an `IndexVec`, having `last` exist on both but returning very different types makes the transition a bit awkward -- the errors are later, where you get things like "there's no `ty` method on `mir::Field`" rather than a more localized error like "hey, there's no `last` on `IndexVec`". So I propose renaming `last` to `last_index` to help distinguish `Vec::last`, which returns an element, and `IndexVec::last_index`, which returns an index. (Similarly, `Iterator::last` also returns an element, not an index.)
…rs-rustdoc, r=GuillaumeGomez rustdoc + rustdoc-json support for `feature(non_lifetime_binders)` Makes `for<T> T: Trait` and `for<const N: usize> ..` in where clause operate correctly. Fixes rust-lang#108158
…eGomez rustdoc: Unsupport importing `doc(primitive)` and `doc(keyword)` modules These are internal features used for a specific purpose, and modules without imports are enough for that purpose.
llvm-wrapper: adapt for LLVM API change Adapts the wrapper for the LLVM commit llvm/llvm-project@377e131. Found by the experimental rust + LLVM @ HEAD bot: https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/18141#01872217-de22-4826-b0d6-2dd4884d8893
…an, r=oli-obk Use span of placeholders in format_args!() expansion. `format_args!("{}", x)` expands to something that contains `Argument::new_display(&x)`. That entire expression was generated with the span of `x`. After this PR, `&x` uses the span of `x`, but the `new_display` call uses the span of the `{}` placeholder within the format string. If an implicitly captured argument was used like in `format_args!("{x}")`, both use the span of the `{x}` placeholder. This fixes rust-lang#109576, and also allows for more improvements to similar diagnostics in the future, since the usage of `x` can now be traced to the exact `{}` placeholder that required it to be `Display` (or `Debug` etc.)
…r=lcnr Check for overflow in `assemble_candidates_after_normalizing_self_ty` Prevents a stack overflow (:warning: :exclamation:) in the new solver when we have param-env candidates that look like: `T: Trait<Assoc = <T as Trait>::Assoc>` The current error message looks bad, but that's because we don't distinguish overflow and other ambiguity errors. I'll break that out into a separate PR since the fix may be controversial. r? `@lcnr`
…rors Fix mismatched punctuation in Debug impl of AttrId I noticed this odd line in `ast-tree` output. ```console $ echo '#[attr] struct S;' | rustc -Zunpretty=ast-tree - ``` ```rust ... attrs: [ Attribute { kind: Normal( NormalAttr { item: AttrItem { path: Path { segments: [ PathSegment { ident: attr#0, args: None, }, ], tokens: None, }, args: Empty, }, }, ), id: AttrId(0)], // <------ style: Outer, }, ```
Rename `IndexVec::last` → `last_index` As I've been trying to replace a `Vec` with an `IndexVec`, having `last` exist on both but returning very different types makes the transition a bit awkward -- the errors are later, where you get things like "there's no `ty` method on `mir::Field`" rather than a more localized error like "hey, there's no `last` on `IndexVec`". So I propose renaming `last` to `last_index` to help distinguish `Vec::last`, which returns an element, and `IndexVec::last_index`, which returns an index. (Similarly, `Iterator::last` also returns an element, not an index.)
@bors r+ rollup=never p=5 |
☀️ Test successful - checks-actions |
📌 Perf builds for each rolled up PR: previous master: f346fb0bc6 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Finished benchmarking commit (cf32b9d): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesThis benchmark run did not return any relevant results for this metric. |
Successful merges:
feature(non_lifetime_binders)
#108335 (rustdoc + rustdoc-json support forfeature(non_lifetime_binders)
)doc(primitive)
anddoc(keyword)
modules #109534 (rustdoc: Unsupport importingdoc(primitive)
anddoc(keyword)
modules)assemble_candidates_after_normalizing_self_ty
#109683 (Check for overflow inassemble_candidates_after_normalizing_self_ty
)IndexVec::last
→last_index
#109718 (RenameIndexVec::last
→last_index
)Failed merges:
r? @ghost
@rustbot modify labels: rollup
Create a similar rollup