forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] master from rust-lang:master #96
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 <jonathantbrouwer@gmail.com>
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
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](#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)
…thanBrouwer
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
[DebugInfo] Fix container types failing to find template args This is a less pervasive (but also less powerful) alternative to #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.
Show packed field alignment in mir_transform_unaligned_packed_ref Fixes #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: #90850 (comment) ## Tracking Issue: #90850 (comment) cc `@marc0246`
…Mark-Simulacrum Optimize path components iteration on platforms that don't have prefixes ``` OLD path::bench_path_components_iter 140.20ns/iter +/- 6.08 path::bench_path_file_name 57.62ns/iter +/- 1.62 NEW path::bench_path_components_iter 126.74ns/iter +/- 1.46 path::bench_path_file_name 47.48ns/iter +/- 2.49 ```
Fix rust stdlib build failing for VxWorks Fixes #148125. O_NOFOLLOW is not supported on VxWorks. All the other defines/functions have been added to libc(rust-lang/libc@0cd5032)
Modify contributor email entries in .mailmap This adds mailmap entries for duplicates I found in https://thanks.rust-lang.org/rust/all-time/ If I added an entry for you and it is not correct, then please let me know! See the comments at the start of https://github.com/rust-lang/thanks/blob/master/mailmap/src/lib.rs for understanding these entries. After this gets into the repo, the thanks page will be regenerated within a day, and your double entries will be merged. cc ````````@aochagavia```````` cc ````````@fasterthanlime```````` cc ````````@jackh726```````` cc ````````@jakubadamw```````` cc ````````@yaahc```````` cc ````````@jackpot51```````` cc ````````@jonhoo```````` cc ````````@marcoieni```````` cc ````````@onur-ozkan```````` cc ````````@rylev```````` cc ````````@willcrichton```````` cc ````````@yoshuawuyts````````
rustc_builtin_macros: rename bench parameter to avoid collisions with user-defined function names Resolves #148275 by preventing name collisions in the `#[bench]` macro. Previously, a user-defined function named "b" could not be benchmarked because the macro-generated lambda identity collided with the same name. We now generate the lambda ident as `__bench_<function_name>`, ensuring it is always distinct from the user’s function. Because the prefix is applied recursively (e.g. benchmarking `__bench_b` produces a lambda ident `__bench___bench_b`), there is no possible function name that can equal its corresponding lambda ident. This guarantees that the user can safely bench a function of any valid name without risk of identifier collision.
…k-simulacrum constify result unwrap unchecked constifies unwrap unchecked on result will make tracking issue if good
Add Allocator proxy impls for Box, Rc, and Arc This adds to the existing proxy impl for &T. Fixes rust-lang/wg-allocators#54
…diagnostic, r=JonathanBrouwer Add note for identifier with attempted hygiene violation Fixes #148580 I changed the original test to make sure we are pointing to the right scope.
…Noratrieb Switch hexagon targets to rust-lld lld is a great choice for a default linker.
…rkingjubilee
Enable std locking functions on AIX
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").
…bzol [bootstrap] Make `--open` option work with `doc src/tools/error_index_generator` Fixes #148557.
don't completely reset `HeadUsages` This is really subtle ☠️ I've actually went and added testing for `search_graph.ignore_candidate_head_usages` to https://github.com/lcnr/search_graph_fuzz now. I should have done that when I originally implemented but didn't quite know how to do so back then. The search graph is far too subtle to think through it manually. I've added the affected proof tree to https://github.com/rust-lang/trait-system-refactor-initiative/blob/main/notes/next-solver/search-graph/general.md#keeping-provisional-cache-entries-on-rerun. It's - A - B - C (depends on B and gets dropped when rerunning) - D (does not depend on B so we keep it around when rerunning) - C (irrevant candidate) - A - B - D - C (irrevant candidate) - D - A - rerun - C (use provisional cache entry which doesn't depend on B) - D (use provisional cache entry which doesn't depend on B) Fixes the ICE in rust-lang/trait-system-refactor-initiative#246 (comment). I think this issue is brittle enough that adding that as a test isn't really useful. Any small change to the search graph will prevent it from testing this. We do test this fix via the fuzzer. r? `````@BoxyUwU`````
Remove a remnant of `dyn*` from the parser Follow-up to #146664 and #143036. `is_explicit_dyn_type` still checked for `TokenKind::Star` which made no sense now that `dyn*` is no more. Removing it doesn't represent a functional change and merely affects diagnostics. That's because the check only dictated whether to interpret `dyn` as the start of a trait object type in Rust 2015 (where this identifier is only a *contextual* keyword). However, we would still fail at the `*` later on as it doesn't start a bound. While at it, I also took the time to clean up in the vicinity.
Remove eslint-js from npm dependencies Testing if this unblocks CI. r? ```@ghost```
Recover `[T: N]` as `[T; N]` `;` is similar and (keyboard-wise) next to `:`, so a verbose suggestion may help to see the difference. Parent PR: #143905 --- `@rustbot` label +A-parser +A-array +A-diagnostics +A-suggestion-diagnostics +D-papercut
…mann Remove unused argument `features` from `eval_config_entry`
…ivooeo Use the current lint note id when parsing `cfg!()`
Rollup of 22 pull requests Successful merges: - #128666 (Add `overflow_checks` intrinsic) - #146305 (Add correct suggestion for multi-references for self type in method) - #147179 ([DebugInfo] Fix container types failing to find template args) - #147743 (Show packed field alignment in mir_transform_unaligned_packed_ref) - #148079 (Rename `downcast_[ref|mut]_unchecked` -> `downcast_unchecked_[ref|mut]`) - #148084 (Optimize path components iteration on platforms that don't have prefixes) - #148126 (Fix rust stdlib build failing for VxWorks) - #148204 (Modify contributor email entries in .mailmap) - #148279 (rustc_builtin_macros: rename bench parameter to avoid collisions with user-defined function names) - #148333 (constify result unwrap unchecked) - #148539 (Add Allocator proxy impls for Box, Rc, and Arc) - #148601 (`invalid_atomic_ordering`: also lint `update` & `try_update`) - #148612 (Add note for identifier with attempted hygiene violation) - #148613 (Switch hexagon targets to rust-lld) - #148619 (Enable std locking functions on AIX) - #148644 ([bootstrap] Make `--open` option work with `doc src/tools/error_index_generator`) - #148649 (don't completely reset `HeadUsages`) - #148673 (Remove a remnant of `dyn*` from the parser) - #148675 (Remove eslint-js from npm dependencies) - #148680 (Recover `[T: N]` as `[T; N]`) - #148688 (Remove unused argument `features` from `eval_config_entry`) - #148711 (Use the current lint note id when parsing `cfg!()`) r? `@ghost` `@rustbot` modify labels: rollup
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )