| Age | Commit message (Collapse) | Author | Lines |
|
|
|
b9535c0b7d6 Auto merge of #109801 - aliemjay:test-implied-normalization, r=petrochenkov
|
|
|
|
I saw that I'm on https://thanks.rust-lang.org/ twice (once as
`Nilstrieb` and once as `nils`).
This is because I've contributed as both `Nilstrieb` (locally) and `nils` (on github).
So I've mailmapped them both to `Nilstrieb` (the less ambiguous of the
two).
|
|
|
|
add test for normalization in implied bounds query
See https://github.com/rust-lang/rust/issues/109799.
|
|
Switch to LLD as default linker for {arm,thumb}v4t-none-eabi
The LLVM 16 update brought ARMv4t support to LLD. We should use it by default so users don't need to install an external linker.
cc `@Lokathor`
|
|
allow ReError in CanonicalUserTypeAnnotation
Why not? we already allow `TyKind::Error`.
Fixes #109072.
|
|
Rollup of 7 pull requests
Successful merges:
- #109104 (rustdoc: Fix invalid suggestions on ambiguous intra doc links v2)
- #109443 (Move `doc(primitive)` future incompat warning to `invalid_doc_attributes`)
- #109680 (Fix subslice capture in closure)
- #109798 (fluent_messages macro: don't emit the OS error in a note)
- #109805 (Source map cleanups)
- #109818 (rustdoc: Add GUI test for jump to collapsed item)
- #109820 (rustdoc-search: update docs for comma in `?` help popover)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
rustdoc-search: update docs for comma in `?` help popover
|
|
rustdoc: Add GUI test for jump to collapsed item
Part of https://github.com/rust-lang/rust/issues/66181.
I updated `browser-ui-test` version because I needed to add a new command `property`: https://github.com/GuillaumeGomez/browser-UI-test/pull/452.
r? `@notriddle`
|
|
Source map cleanups
r? `@bjorn3`
|
|
fluent_messages macro: don't emit the OS error in a note
This makes it possible to make the normalization of the error message precise, allowing us to not normalize all notes away. See https://github.com/rust-lang/rust/pull/109700#discussion_r1152489053
|
|
Fix subslice capture in closure
Fixes #109298 by refining captures in the same way for Subslices and Indexes. The comment `// we never capture this` seems to have been inaccurate, as changing it to an assert causes many test failures
`@rustbot` label +A-closures
|
|
Move `doc(primitive)` future incompat warning to `invalid_doc_attributes`
Fixes #88070.
It's been a while since this was turned into a "future incompatible lint" so I think we can now turn it into a hard error without problem.
r? `@jyn514`
|
|
GuillaumeGomez:fix-invalid-suggestion-ambiguous-intra-doc2, r=oli-obk,notriddle
rustdoc: Fix invalid suggestions on ambiguous intra doc links v2
Fixes https://github.com/rust-lang/rust/issues/108653.
This is another approach to fixing the same issue. This time, we keep the computed information around instead of re-computing it.
Strangely enough, the order for ambiguities seem to have been changed. Not an issue but it creates a lot of diff...
So which version do you prefer?
r? `@notriddle`
|
|
Initial support for return type notation (RTN)
See: https://smallcultfollowing.com/babysteps/blog/2023/02/13/return-type-notation-send-bounds-part-2/
1. Only supports `T: Trait<method(): Send>` style bounds, not `<T as Trait>::method(): Send`. Checking validity and injecting an implicit binder for all of the late-bound method generics is harder to do for the latter.
* I'd add this in a follow-up.
3. ~Doesn't support RTN in general type position, i.e. no `let x: <T as Trait>::method() = ...`~
* I don't think we actually want this.
5. Doesn't add syntax for "eliding" the function args -- i.e. for now, we write `method(): Send` instead of `method(..): Send`.
* May be a hazard if we try to add it in the future. I'll probably add it in a follow-up later, with a structured suggestion to change `method()` to `method(..)` once we add it.
7. ~I'm not in love with the feature gate name 😺~
* I renamed it to `return_type_notation` :heavy_check_mark:
Follow-up PRs will probably add support for `where T::method(): Send` bounds. I'm not sure if we ever want to support return-type-notation in arbitrary type positions. I may also make the bounds require `..` in the args list later.
r? `@ghost`
|
|
|
|
|
|
|
|
|
|
Add `IndexSlice` to go with `IndexVec`
Moves the methods that don't need full `IndexVec`-ness over to `IndexSlice`, and have `IndexVec` deref to `IndexSlice` so everything keeps working.
Doing this for later use in https://github.com/rust-lang/compiler-team/issues/606, where I'm hitting a bunch of things that are just slices and thus there's no way to index with the `FieldIdx`.
|
|
Insert alignment checks for pointer dereferences when debug assertions are enabled
Closes https://github.com/rust-lang/rust/issues/54915
- [x] Jake tells me this sounds like a place to use `MirPatch`, but I can't figure out how to insert a new basic block with a new terminator in the middle of an existing basic block, using `MirPatch`. (if nobody else backs up this point I'm checking this as "not actually a good idea" because the code looks pretty clean to me after rearranging it a bit)
- [x] Using `CastKind::PointerExposeAddress` is definitely wrong, we don't want to expose. Calling a function to get the pointer address seems quite excessive. ~I'll see if I can add a new `CastKind`.~ `CastKind::Transmute` to the rescue!
- [x] Implement a more helpful panic message like slice bounds checking.
r? `@oli-obk`
|
|
Rollup of 4 pull requests
Successful merges:
- #109598 (Improve documentation for str::replace() and str::replacen())
- #109779 (Update gccjit and remove libc 0.1 dependency)
- #109784 (Refactor glibc time64 support, riscv32 always has 64-bit `time_t`)
- #109793 (add comment to `impl !Error for &str`)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
add comment to `impl !Error for &str`
I saw this impl in the [standard library docs](https://doc.rust-lang.org/nightly/core/error/trait.Error.html#impl-Error-for-%26str) and wondered why it's needed. This commit adds a comment to explain its existence.
|
|
Refactor glibc time64 support, riscv32 always has 64-bit `time_t`
Refactor existing support for 64-bit `time_t` on 32-bit glibc platforms, as riscv32 `time_t` is 64-bit by default. Split out of #109773.
|
|
Update gccjit and remove libc 0.1 dependency
Fixes https://github.com/rust-lang/rust/issues/109774.
|
|
Improve documentation for str::replace() and str::replacen()
Currently, to know what the function will return when the pattern doesn't match, the docs require the reader to understand the implementation detail and mentally evaluate or run the example code. It is not immediately clear.
This PR makes it more explicit so the reader can quickly find the information.
|
|
Rename `with_source_map` as `set_source_map`. Because `with` functions
(e.g. `with_session_globals`, `scoped_tls::ScopedKey::with`) are for
*getting* a value for the duration of a closure, and `set` functions
(e.g. `set_session_globals_then` `scoped_tls::ScopedKey::with`) are for
*setting* a value for the duration of a closure.
Also fix up the comment, which is wrong:
- The bit about `TyCtxt` is wrong.
- `span_debug1` doesn't exist any more.
- There's only one level of fallback, not two.
(This is effectively a follow-up to the changes in #93936.)
Also add a comment explaining that `SessionGlobals::source_map` should
only be used when absolutely necessary.
|
|
We can easily pass in the source map.
|
|
|
|
Update `ty::VariantDef` to use `IndexVec<FieldIdx, FieldDef>`
And while doing the updates for that, also uses `FieldIdx` in `ProjectionKind::Field` and `TypeckResults::field_indices`.
There's more places that could use it (like `rustc_const_eval` and `LayoutS`), but I tried to keep this PR from exploding to *even more* places.
Part 2/? of https://github.com/rust-lang/compiler-team/issues/606
|
|
See https://github.com/rust-lang/rust/issues/109799.
|
|
This makes it possible to make the normalization of the error message
more precise, allowing us to not normalize all notes away.
|
|
|
|
r=lcnr
numeric vars can only be unified with numerical types in deep reject
Don't consider numeric vars (int and float vars) to unify with non-numeric types during deep reject. This helps us reject incompatible impls sooner.
|
|
|
|
Rollup of 6 pull requests
Successful merges:
- #109347 (Skip no_mangle if the item has no name.)
- #109522 (Implement current_dll_path for AIX)
- #109679 (Freshen normalizes-to hack goal RHS in the evaluate loop)
- #109704 (resolve: Minor improvements to effective visibilities)
- #109739 (Closures always implement `FnOnce` in new solver)
- #109758 (Parallel compiler cleanups)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parallel compiler cleanups
A few small improvements I found while looking closely at this code.
r? `@cjgillot`
cc `@Zoxc,` `@SparrowLii`
|
|
Closures always implement `FnOnce` in new solver
We should process `[closure]: FnOnce(Tys...) -> Ty` obligations *before* fallback and closure analysis. We can do this by taking advantage of the fact that `FnOnce` is always implemented by closures, even before we definitely know the closure kind.
Fixes compiler-errors/next-solver-hir-issues#15
r? ``@oli-obk`` (trying to spread the reviewer load for new trait solver prs, and this one is pretty self-contained, though feel free to reassign 😸)
|
|
resolve: Minor improvements to effective visibilities
See individual commits.
|
|
Freshen normalizes-to hack goal RHS in the evaluate loop
Ensure that we repeatedly equate the unconstrained RHS of the normalizes-to hack goal with the *actual* RHS of the goal, even if the normalizes-to goal loops several times and thus we replace the unconstrained RHS var repeatedly.
Alternative to #109583.
|
|
Implement current_dll_path for AIX
AIX doesn't feature `dladdr`, use `loadquery` instead.
`loadquery` is documented in https://www.ibm.com/docs/en/aix/7.2?topic=l-loadquery-subroutine.
|