| Age | Commit message (Collapse) | Author | Lines |
|
as `Applicability::Unspecified`
|
|
|
|
mutability
|
|
Rollup of 5 pull requests
Successful merges:
- #71018 (handle ConstValue::ByRef in relate)
- #71758 (Remove leftover chalk types)
- #71760 (Document unsafety for `*const T` and `*mut T`)
- #71761 (doc: reference does not exist, probably a typo)
- #71762 (doc: this resulted in a link pointing to a non-existent target)
Failed merges:
- #71726 (Suggest deref when coercing `ty::Ref` to `ty::RawPtr` with arbitrary mutability)
r? @ghost
|
|
doc: this resulted in a link pointing to a non-existent target
|
|
doc: reference does not exist, probably a typo
|
|
Document unsafety for `*const T` and `*mut T`
Helps with #66219
r? @Mark-Simulacrum
|
|
Remove leftover chalk types
Split out from #69406
Since the other PR is having memory problems with `parallel-compiler = true`, figured I should split this out. Surprisingly, this actually changes some errors, and I'm not quite sure why.
r? @nikomatsakis
|
|
handle ConstValue::ByRef in relate
fixes #68615
r? @eddyb
|
|
Avoid duplicating code for each query
There are at the moment roughly 170 queries in librustc.
The way `ty::query` is structured, a lot of code is duplicated for each query.
I suspect this to be responsible for a part of librustc'c compile time.
The first part of this PR reduces the amount of code generic on the query,
replacing it by code generic on the key-value types. I can split it out if needed.
In a second part, the non-inlined methods in the `QueryAccessors` and `QueryDescription` traits
are made into a virtual dispatch table. This allows to reduce even more the number of generated
functions.
This allows to save 1.5s on check build, and 10% on the size of the librustc.rlib.
(Attributed roughly half and half).
My computer is not good enough to measure properly compiling time.
I have no idea of the effect on performance. A perf run may be required.
cc #65031
|
|
|
|
|
|
|
|
|
|
fix doc reference
Should of been in e0ce9f8c0a97e5949c9cadd220279d6969289daa,
but that had a typo.
|
|
make Stability doc a more readable (and fix rustdoc warning)
|
|
fix Miri error message padding
I screwed up in the previous PR, and accidentally padded with spaces instead of 0s...
r? @oli-obk
|
|
r=oli-obk
Remove deadcode in eval_mir_constant_to_operand
r? @oli-obk @RalfJung
|
|
remove obsolete comment
Referenced was removed in 8770d0f34a9bee2691517ab95803a277c453dfda
|
|
Should of been in e0ce9f8c0a97e5949c9cadd220279d6969289daa,
but that had a typo.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
submodules: update cargo from 90931d9b3 to 258c89644
Changes:
````
Remove unnecessary loop in `maybe_spurious`
Fix error with git repo discovery and symlinks.
Allow failure when setting file mtime.
Support multiple `--target` flags on the CLI
build-std: Don't treat std like a "local" package.
Allow `cargo package --list` even for things that don't package.
````
I'd like to get https://github.com/rust-lang/cargo/pull/8186 into nightly asap. :)
r? @ehuss
|
|
Referenced was removed in 8770d0f34a9bee2691517ab95803a277c453dfda
|
|
Changes:
````
Remove unnecessary loop in `maybe_spurious`
Fix error with git repo discovery and symlinks.
Allow failure when setting file mtime.
Support multiple `--target` flags on the CLI
build-std: Don't treat std like a "local" package.
Allow `cargo package --list` even for things that don't package.
````
|
|
|
|
|
|
|
|
also tweak InvalidDiscriminant message
|
|
|
|
Disable localization for all linkers
We previously disabled non-English output from `link.exe` due to encoding issues (#35785).
In https://github.com/rust-lang/rust/pull/70740 it was pointed out that it also prevents correct inspection of the linker output, which we have to do occasionally.
So this PR disables localization for all linkers.
|
|
Have the per-query caches store the results on arenas
This PR leverages the cache for each query to serve as storage area for the query results.
It introduces a new cache `ArenaCache`, which moves the result to an arena,
and only stores the reference in the hash map.
This allows to remove a sizeable part of the usage of the global `TyCtxt` arena.
I only migrated queries that already used arenas before.
|
|
Allow `Unreachable` terminators unconditionally in const-checking
If we ever actually reach an `Unreachable` terminator while executing, the MIR is ill-formed or the user's program is UB due to something like `unreachable_unchecked`. I don't think we need to forbid these in `qualify_min_const_fn`.
r? @oli-obk
|
|
Allow `Downcast` projections unconditionally in const-checking
`ProjectionElem::Downcast` sounds scary, but it's really just the projection we use to access a particular enum variant. They usually appear in the lowering of a `match` statement, so they have been associated with control flow in const-checking, but they don't do any control flow by themselves. We already have a HIR pass that looks for `if` and `match` (even ones that have 1 or fewer reachable branches). That pass is double-checked by a MIR pass that looks for `SwitchInt`s and `FakeRead`s for match scrutinees. In my opinion, there's no need to look for `Downcast` as well.
r? @oli-obk
|
|
MIR dump: print pointers consistently with Miri output
This makes MIR allocation dump pointer printing consistent with Miri output: both use hexadecimal offsets with a `0x` prefix. To save some space, MIR dump replaces the `alloc` prefix by `a` when necessary.
I also made AllocId/Pointer printing more consistent in their Debug/Display handling, and adjusted Display printing for Scalar a bit to avoid using decimal printing when we do not know the sign with which to interpret the value (IMO using decimal then is misleading).
|
|
Handle build completion message from Cargo
This was introduced in the recent bump to 1.44 bootstrap cargo
Fixes #71561.
|
|
Add a convenience method on `TyCtxt` for checking for thread locals
This PR extracts the cleanup part of #71192
r? @bjorn3
|
|
Vec drop and truncate: drop using raw slice *mut [T]
By creating a *mut [T] directly (without going through &mut [T]), avoid
questions of validity of the contents of the slice.
Consider the following risky code:
```rust
unsafe {
let mut v = Vec::<bool>::with_capacity(16);
v.set_len(16);
}
```
The intention is that with this change, we avoid one of the soundness
questions about the above snippet, because Vec::drop no longer
produces a mutable slice of the vector's contents.
r? @RalfJung
|
|
Rollup of 5 pull requests
Successful merges:
- #70950 (extend NLL checker to understand `'empty` combined with universes)
- #71433 (Add help message for missing right operand in condition)
- #71449 (Move `{Free,}RegionRelations` and `FreeRegionMap` to `rustc_infer`)
- #71559 (Detect git version before attempting to use --progress)
- #71597 (Rename Unique::empty() -> Unique::dangling())
Failed merges:
r? @ghost
|
|
Rename Unique::empty() -> Unique::dangling()
A `FIXME` comment in `src/libcore/ptr/unique.rs` suggested refactoring `Unique::empty()` to `Unique::dangling()` which this PR does.
|