| Age | Commit message (Collapse) | Author | Lines |
|
|
|
rustc: `hir().local_def_id_to_hir_id()` -> `tcx.local_def_id_to_hir_id()` cleanup
Noticed this while working on https://github.com/rust-lang/rust/pull/118188.
The history here is that the method was moved from HIR map to tcx in https://github.com/rust-lang/rust/pull/93373 as a part of incremental compilation work, so it's unlikely to go back.
|
|
cleanup
|
|
Refactor borrowck liveness values
This PR starts cleaning up `rustc_borrowck`, in particular around liveness values:
- refactors simple names that make no sense anymore: either referring to older structures using region elements, or to bitset containers and values.
- improves comments and fixes others
- removes unused return values and unneeded generic arguments
r? `@matthewjasper`
|
|
Add `debug_assert_nounwind` and convert `assert_unsafe_precondition`
`assert_unsafe_precondition` checks non-CTFE-evaluable conditions in runtime and performs no-op in compile time, while many of its current usage can be checked during const eval.
|
|
rustc: Make `def_kind` mandatory for all `DefId`s
Prerequisite for https://github.com/rust-lang/rust/pull/118188.
|
|
Rollup of 7 pull requests
Successful merges:
- #117651 (coverage: Simplify building coverage expressions based on sums)
- #117968 (Stabilize `ptr::addr_eq`)
- #118158 (Reduce fluent boilerplate)
- #118201 (Miscellaneous `ObligationCauseCode` cleanups)
- #118288 (Use `is_{some,ok}_and` more in the compiler)
- #118289 (`is_{some,ok}_and` for rustdoc)
- #118290 (Don't ICE when encountering placeholders in implied bounds computation)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
Rewrite exhaustiveness in one pass
This is at least my 4th attempt at this in as many years x) Previous attempts were all too complicated or too slow. But we're finally here!
The previous version of the exhaustiveness algorithm computed reachability for each arm then exhaustiveness of the whole match. Since each of these steps does roughly the same things, this rewrites the algorithm to do them all in one go. I also think this makes things much simpler.
I also rewrote the documentation of the algorithm in depth. Hopefully it's up-to-date and easier to follow now. Plz comment if anything's unclear.
r? `@oli-obk` I think you're one of the rare other people to understand the exhaustiveness algorithm?
cc `@varkor` I know you're not active anymore, but if you feel like having a look you might enjoy this :D
Fixes https://github.com/rust-lang/rust/issues/79307
|
|
|
|
|
|
|
|
|
|
Don't ICE when encountering placeholders in implied bounds computation
I *could* fix this the right way, though I don't really want to think about the implications of the change. This should have minimal side-effects.
r? `@aliemjay`
Fixes #118286
|
|
`is_{some,ok}_and` for rustdoc
slightly more fluent-reading code
r? fmease
|
|
Use `is_{some,ok}_and` more in the compiler
slightly more fluent-reading code
|
|
Miscellaneous `ObligationCauseCode` cleanups
Remove some dead code/unused `ObligationCauseCode`s.
|
|
r=compiler-errors
Reduce fluent boilerplate
Best reviewed one commit at a time.
r? `@davidtwco`
|
|
Stabilize `ptr::addr_eq`
This PR stabilize the `ptr_addr_eq` library feature, representing:
```rust
// core::ptr
pub fn addr_eq<T: ?Sized, U: ?Sized>(p: *const T, q: *const U) -> bool;
```
FCP has already started [on the tracking issue](https://github.com/rust-lang/rust/issues/116324#issuecomment-1813008697) and is waiting on the final period comment.
Note: stabilizing this feature is somewhat of requirement for a new T-lang lint, cf. https://github.com/rust-lang/rust/pull/117758#issuecomment-1813183686.
|
|
coverage: Simplify building coverage expressions based on sums
This is a combination of some interlinked changes to the code that creates coverage counters/expressions for nodes and edges in the coverage graph:
- Some preparatory cleanups in `MakeBcbCounters::make_branch_counters`
- Use `BcbCounter` (instead of `CovTerm`) when building coverage expressions
- This makes it easier to introduce a fold for building sums
- Simplify the creation of coverage expressions based on sums, by having `Iterator::fold` do much of the work
- Get rid of the awkward `BcbBranch` enum, and replace it with graph edges represented as `(from_bcb, to_bcb)`
- This further simplifies the body of the fold
|
|
|
|
|
|
|
|
|
|
|
|
Currently we always do this:
```
use rustc_fluent_macro::fluent_messages;
...
fluent_messages! { "./example.ftl" }
```
But there is no need, we can just do this everywhere:
```
rustc_fluent_macro::fluent_messages! { "./example.ftl" }
```
which is shorter.
|
|
|
|
The `fluent_messages!` macro produces uses of
`crate::{D,Subd}iagnosticMessage`, which means that every crate using
the macro must have this import:
```
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
```
This commit changes the macro to instead use
`rustc_errors::{D,Subd}iagnosticMessage`, which avoids the need for the
imports.
|
|
It's empty, and it doesn't even make sense, because
`rustc_error_messages` is a lower-level crate than `rustc_errors`.
|
|
Update cargo
7 commits in 71cd3a926f0cf41eeaf9f2a7f2194b2aff85b0f6..9b13310ca596020a737aaa47daa4ed9ff8898a2f
2023-11-20 15:30:57 +0000 to 2023-11-24 16:20:51 +0000
- feat: Add `CARGO_RUSTC_CURRENT_DIR` (unstable) (rust-lang/cargo#12996)
- Exited with hard error when custom build file no existence or not in package (rust-lang/cargo#12995)
- try running on windows (rust-lang/cargo#13042)
- refactor(toml): Better abstract inheritance details (rust-lang/cargo#13021)
- cargo-test-support: Add features to the default Cargo.toml file (rust-lang/cargo#12997)
- Migrate rustfix to the cargo repo (rust-lang/cargo#13005)
- typo: rusc -> rustc (rust-lang/cargo#13019)
---
This also removes the check to ensure that `rustfix` between
* src/tools/cargo
* src/tools/compiletest
has the same version,
since `rust-lang/rustfix` has migrated to under `rust-lang/cargo`.
r? ghost
|
|
Rollup of 6 pull requests
Successful merges:
- #116446 (Yeet `mir::Const::from_anon_const`)
- #117871 (remove unused pub fns)
- #118017 (rustc_lint: address latent TODO)
- #118199 (Remove `HirId` from `QPath::LangItem`)
- #118272 (resolve: Avoid clones of `MacroData`)
- #118291 (rustdoc-search: clean up some DOM code)
Failed merges:
- #118201 (Miscellaneous `ObligationCauseCode` cleanups)
- #118256 (rustc: `hir().local_def_id_to_hir_id()` -> `tcx.local_def_id_to_hir_id()` cleanup)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
rustdoc-search: clean up some DOM code
|
|
resolve: Avoid clones of `MacroData`
And move declarative macro compilation to an earlier point in def collector, which is required for #118188.
|
|
Remove `HirId` from `QPath::LangItem`
Remove `HirId` from `QPath::LangItem`, since there was only *one* use-case (`ObligationCauseCode::AwaitableExpr`), which we can instead recover by walking the HIR tree.
|
|
rustc_lint: address latent TODO
See individual commits.
|
|
remove unused pub fns
This removes some unused `pub fn`; also fixes few obsoleted fn names or added fixmes with reminders to update them.
|
|
Yeet `mir::Const::from_anon_const`
Only had one callsite which was easily simplified.
Uplifted a comment that I think is much more useful living in `ty::Const` world.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
the unadjusted ABI needs to pass aggregates by-value
Fixes https://github.com/rust-lang/rust/issues/118124, a regression introduced in https://github.com/rust-lang/rust/pull/117500
|
|
Miri subtree update
|
|
Rustup
|
|
|