-
Notifications
You must be signed in to change notification settings - Fork 14k
Rollup of 22 pull requests #148721
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 22 pull requests #148721
Conversation
Undo rust-analyzer changes
This adds to the existing proxy impl for &T.
lld is a great choice for a default linker.
This patch enables the std locking functions on AIX by including AIX on the list
of supported targets for the locking functions. Excluding AIX from the std
locking functions results to compilation errors such as: ("try_lock() not supported").
Updated email addresses for several contributors in the mailmap.
… user-defined function names
Signed-off-by: Jonathan Brouwer <[email protected]>
Signed-off-by: Jonathan Brouwer <[email protected]>
…=BoxyUwU Add `overflow_checks` intrinsic This adds an intrinsic which allows code in a pre-built library to inherit the overflow checks option from a crate depending on it. This enables code in the standard library to explicitly change behavior based on whether `overflow_checks` are enabled, regardless of the setting used when standard library was compiled. This is very similar to the `ub_checks` intrinsic, and refactors the two to use a common mechanism. The primary use case for this is to allow the new `RangeFrom` iterator to yield the maximum element before overflowing, as requested [here](rust-lang#125687 (comment)). This PR includes a working `IterRangeFrom` implementation based on this new intrinsic that exhibits the desired behavior. [Prior discussion on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/Ability.20to.20select.20code.20based.20on.20.60overflow_checks.60.3F)
…f, r=JonathanBrouwer
Add correct suggestion for multi-references for self type in method
Currently the suggestion for this code
```rust
fn main() {}
struct A {
field: i32,
}
impl A {
fn f(&&self) {}
}
```
looks like this, which is incorrect and missleading
```rust
Compiling playground v0.0.1 (/playground)
error: expected one of `!`, `(`, `...`, `..=`, `..`, `::`, `:`, `{`, or `|`, found `)`
--> src/main.rs:8:16
|
8 | fn f(&&self) {}
| ^ expected one of 9 possible tokens
|
= note: anonymous parameters are removed in the 2018 edition (see RFC 1685)
help: explicitly ignore the parameter name
|
8 | fn f(_: &&self) {}
| ++
```
So this fixes it and make more correct suggestions
```rust
error: expected one of `!`, `(`, `...`, `..=`, `..`, `::`, `:`, `{`, or `|`, found `)`
--> /home/gh-Kivooeo/test_/src/main.rs:8:16
|
8 | fn f(&&self) {}
| ^ expected one of 9 possible tokens
|
help: `self` should be `self`, `&self` or `&mut self`, please remove extra references
|
8 - fn f(&&self) {}
8 + fn f(&self) {}
```
Implementation is pretty self-documenting, but if you have suggestions on how to improve this (according to current test, which may be not fully covering all cases, this is works very well) or have some funny edge cases to show, I would appreciate it
r? compiler
…Simulacrum [DebugInfo] Fix container types failing to find template args This is a less pervasive (but also less powerful) alternative to rust-lang#144394. This change *only* provides benefits to container types on MSVC. The TL;DR is that nodes that don't populate/aren't discoverable in the PDB for various reasons are given an alternate lookup path that generates the nodes by acquiring the base-type via some gross string manipulation and then asking clang for the node it wants (e.g. `"ref$<i32>"` -> `"i32"` -> `target.FindFirstType("i32").GetPointerType()` -> `i32 *`, which is a valid type for the container to use) The before/afters are the same as in the above PR's `*-msvc` LLDB screenshots. This works as a stopgap while the above PR is evaluated, but I think that PR is still a much better solution.
…Jung Show packed field alignment in mir_transform_unaligned_packed_ref Fixes rust-lang#147528 I left the expected padding for the field out of the error message so the message would be the same on all platforms. It also isn't always possible to know the expected alignment, so this makes the message simpler.
Rename `downcast_[ref|mut]_unchecked` -> `downcast_unchecked_[ref|mut]` ## Intent Renames `downcast_[ref|mut]_unchecked` to `downcast_unchecked_[ref|mut]` because we want to emphasise that it is the downcast that is unsafe, not the aliasing per: rust-lang#90850 (comment) ## Tracking Issue: rust-lang#90850 (comment) cc `@marc0246`
|
Finished benchmarking commit (20f1c04): comparison URL. Overall result: ❌✅ regressions and improvements - please read the text belowOur benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary -2.4%, secondary -3.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -6.9%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.1%, secondary -0.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 474.157s -> 477.048s (0.61%) |
This comment has been minimized.
This comment has been minimized.
This comment was marked as resolved.
This comment was marked as resolved.
Rollup of 22 pull requests Successful merges: - rust-lang#128666 (Add `overflow_checks` intrinsic) - rust-lang#146305 (Add correct suggestion for multi-references for self type in method) - rust-lang#147179 ([DebugInfo] Fix container types failing to find template args) - rust-lang#147743 (Show packed field alignment in mir_transform_unaligned_packed_ref) - rust-lang#148079 (Rename `downcast_[ref|mut]_unchecked` -> `downcast_unchecked_[ref|mut]`) - rust-lang#148084 (Optimize path components iteration on platforms that don't have prefixes) - rust-lang#148126 (Fix rust stdlib build failing for VxWorks) - rust-lang#148204 (Modify contributor email entries in .mailmap) - rust-lang#148279 (rustc_builtin_macros: rename bench parameter to avoid collisions with user-defined function names) - rust-lang#148333 (constify result unwrap unchecked) - rust-lang#148539 (Add Allocator proxy impls for Box, Rc, and Arc) - rust-lang#148601 (`invalid_atomic_ordering`: also lint `update` & `try_update`) - rust-lang#148612 (Add note for identifier with attempted hygiene violation) - rust-lang#148613 (Switch hexagon targets to rust-lld) - rust-lang#148619 (Enable std locking functions on AIX) - rust-lang#148644 ([bootstrap] Make `--open` option work with `doc src/tools/error_index_generator`) - rust-lang#148649 (don't completely reset `HeadUsages`) - rust-lang#148673 (Remove a remnant of `dyn*` from the parser) - rust-lang#148675 (Remove eslint-js from npm dependencies) - rust-lang#148680 (Recover `[T: N]` as `[T; N]`) - rust-lang#148688 (Remove unused argument `features` from `eval_config_entry`) - rust-lang#148711 (Use the current lint note id when parsing `cfg!()`) r? `@ghost` `@rustbot` modify labels: rollup
This comment has been minimized.
This comment has been minimized.
This comment was marked as resolved.
This comment was marked as resolved.
This comment has been minimized.
This comment has been minimized.
This comment was marked as resolved.
This comment was marked as resolved.
|
I've been trying to find the source of the ripgrep/cargo regression, because it might be interesting, but I haven't located it so far. |
This comment has been minimized.
This comment has been minimized.
This comment was marked as resolved.
This comment was marked as resolved.
This comment has been minimized.
This comment has been minimized.
This comment was marked as resolved.
This comment was marked as resolved.
This comment has been minimized.
This comment has been minimized.
This comment was marked as resolved.
This comment was marked as resolved.
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (190039d): comparison URL. Overall result: ❌✅ regressions and improvements - please read the text belowInstruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary -2.4%, secondary -3.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 2.2%, secondary -6.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.1%, secondary -0.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 474.157s -> 478.47s (0.91%) |
Successful merges:
overflow_checksintrinsic #128666 (Addoverflow_checksintrinsic)downcast_[ref|mut]_unchecked->downcast_unchecked_[ref|mut]#148079 (Renamedowncast_[ref|mut]_unchecked->downcast_unchecked_[ref|mut])invalid_atomic_ordering: also lintupdate&try_update#148601 (invalid_atomic_ordering: also lintupdate&try_update)--openoption work withdoc src/tools/error_index_generator#148644 ([bootstrap] Make--openoption work withdoc src/tools/error_index_generator)HeadUsages#148649 (don't completely resetHeadUsages)dyn*from the parser #148673 (Remove a remnant ofdyn*from the parser)[T: N]as[T; N]#148680 (Recover[T: N]as[T; N])featuresfromeval_config_entry#148688 (Remove unused argumentfeaturesfromeval_config_entry)cfg!()#148711 (Use the current lint note id when parsingcfg!())r? @ghost
@rustbot modify labels: rollup
Create a similar rollup