| Age | Commit message (Collapse) | Author | Lines |
|
Prepare standard library for Rust 2024 migration
This includes a variety of commits preparing the standard library for migration to Rust 2024.
The actual migration is blocked on a few things, so I wanted to get this out of the way in a relatively digestable PR.
|
|
|
|
|
|
|
|
Fix presentation of purely "additive" replacement suggestion parts
#127541 changes replacement suggestions to use the "diff" view always, which I think is really verbose in cases where a replacement snippet is a "superset" of the snippet that is being replaced.
Consider:
```
LL - Self::Baz: Clone,
LL + Self::Baz: Clone, T: std::clone::Clone
```
In this code, we suggest replacing `", "` with `", T: std::clone::Clone"`. This is a consequence of how the snippet is constructed. I believe that since the string that is being replaced is a subset of the replacement string, it's not providing much value to present this as a diff. Users should be able to clearly understand what's being suggested here using the `~` underline view we've been suggesting for some time now.
Given that this affects ~100 tests out of the ~1000 UI tests affected, I expect this to be a pretty meaningful improvement of the fallout of #127541.
---
In the last commit, this PR also "trims" replacement parts so that they are turned into their purely additive subset, if possible. See the diff for what this means.
---
r? estebank
|
|
|
|
|
|
Setting the TARGET env var can be replaced with using
rustc_session::config::host_tuple at runtime. And the check-cfg can be
replaced with using the lints section in Cargo.toml.
|
|
|
|
|
|
|
|
|
|
|
|
valtree performance tuning
Summary: This PR makes type checking of code with many type-level constants faster.
After https://github.com/rust-lang/rust/pull/136180 was merged, we observed a small perf regression (https://github.com/rust-lang/rust/pull/136318#issuecomment-2635562821). This happened because that PR introduced additional copies in the fast reject code path for consts, which is very hot for certain crates: https://github.com/rust-lang/rust/blob/6c1d960d88dd3755548b3818630acb63fa98187e/compiler/rustc_type_ir/src/fast_reject.rs#L486-L487
This PR improves the performance again by properly interning the valtrees so that copying and comparing them becomes faster. This will become especially useful with `feature(adt_const_params)`, so the fast reject code doesn't have to do a deep compare of the valtrees.
Note that we can't just compare the interned consts themselves in the fast reject, because sometimes `'static` lifetimes in the type are be replaced with inference variables (due to canonicalization) on one side but not the other.
A less invasive alternative that I considered is simply avoiding copies introduced by https://github.com/rust-lang/rust/pull/136180 and comparing the valtrees it in-place (see commit: https://github.com/rust-lang/rust/commit/9e91e50ac5920f0b9b4a3b1e0880c85336ba5c64 / perf results: https://github.com/rust-lang/rust/pull/136593#issuecomment-2642303245), however that was still measurably slower than interning.
There are some minor regressions in secondary benchmarks: These happen due to changes in memory allocations and seem acceptable to me. The crates that make heavy use of valtrees show no significant changes in memory usage.
|
|
|
|
manual: Separate out installation and configuration pages
|
|
|
|
|
|
|
|
Rename rustc_middle::Ty::is_unsafe_ptr to is_raw_ptr
The wording unsafe pointer is less common and not mentioned in a lot of places, instead this is usually called a "raw pointer". For the sake of uniformity, we rename this method.
This came up during the review of
https://github.com/rust-lang/rust/pull/134424.
r? `@Noratrieb`
|
|
|
|
|
|
Change swap_nonoverlapping from lang to library UB
The implementation of ptr::swap_nonoverlapping does not always escalate its safety contract to language UB, so it should be `check_library_ub`.
Fixes https://github.com/rust-lang/miri/issues/4188
|
|
|
|
Organise the installation content into:
* VS Code instructions
* Binary installation
* Editor configuration
|
|
|
|
Spawn toolchain querying processes in parallel
|
|
|
|
Improve error recovery when method-calling a field
|
|
|
|
|
|
The `#[must_use]` attribute has no effect when applied to methods in
trait implementations.
|
|
fix: handle character boundary in search mode
|
|
fix: Do not show safety hints for extern items lacking semantics
|
|
|
|
|
|
fix: Apply adjustments to proper expr when invoking `CoerceMany`
|
|
Simplify panic_context
|
|
fix: Censor cfg_attr for attribute macros
|
|
fix: Lower range pattern bounds to expressions
|
|
fix: Fix postfix completions inside macros
|
|
doc: add xtask codegen command in development README as well
|
|
rust-lang/dependabot/npm_and_yarn/editors/code/esbuild-0.25.0
Bump esbuild from 0.18.12 to 0.25.0 in /editors/code
|
|
Replace i686-unknown-redox target with i586-unknown-redox
This change is related to https://github.com/rust-lang/rust/issues/136495
|
|
|
|
Propogate error types in mir type projections
|
|
|
|
doc: remove unused plugin config
|
|
manual: Fix URLs to rustdoc pages
|
|
|