| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2025-09-08 | Auto merge of #140375 - lcnr:subrelations-infcx, r=BoxyUwU | bors | -0/+4 | |
| eagerly compute `sub_unification_table` again Previously called `sub_relations`. We still only using them for diagnostics right now. This mostly reverts rust-lang/rust#119989. Necessary for type inference guidance due to not-yet defined opaque types, cc https://github.com/rust-lang/trait-system-refactor-initiative/issues/182. We could use them for cycle detection in generalization and it seems desirable to do so in the future. However, this is unsound with the old trait solver as its cache does not track these `sub_unification_table` in any way. We now properly track the `sub_unification_table` when canonicalizing so using them in the new solver is totally sound and the performance impact is far more manageable than I thought back in rust-lang/rust#119989. r? `@compiler-errors` | ||||
| 2025-09-08 | review | lcnr | -1/+1 | |
| 2025-09-08 | eagerly compute `sub_relations` again | lcnr | -0/+4 | |
| 2025-09-08 | Move `rustc_middle::MaxUniverse` to `rustc_infer`. | Nicholas Nethercote | -2/+41 | |
| Because `rust_infer` is the only crate that uses it. | ||||
| 2025-08-03 | Auto merge of #144677 - nnethercote:bound-const-handling, r=lcnr | bors | -2/+2 | |
| Improve bound const handling A few changes to make const handling more similar to type handling. r? `@compiler-errors` -errors | ||||
| 2025-07-31 | Make const bound handling more like types/regions. | Nicholas Nethercote | -2/+2 | |
| Currently there is `Ty` and `BoundTy`, and `Region` and `BoundRegion`, and `Const` and... `BoundVar`. An annoying inconsistency. This commit repurposes the existing `BoundConst`, which was barely used, so it's the partner to `Const`. Unlike `BoundTy`/`BoundRegion` it lacks a `kind` field but it's still nice to have because it makes the const code more similar to the ty/region code everywhere. The commit also removes `impl From<BoundVar> for BoundTy`, which has a single use and doesn't seem worth it. These changes fix the "FIXME: We really should have a separate `BoundConst` for consts". | ||||
| 2025-07-31 | Move `TermVid` out of `rustc_middle`. | Nicholas Nethercote | -10/+26 | |
| It's only used in `rustc_infer`. | ||||
| 2025-06-25 | rename RegionVariableOrigin::MiscVariable to RegionVariableOrigin::Misc | Michael Goulet | -4/+3 | |
| 2025-05-27 | Rename unpack to kind | Michael Goulet | -1/+1 | |
| 2025-05-02 | Use less rustc_type_ir in the compiler codebase | Romain Perier | -5/+3 | |
| This commit does the following: - Replaces use of rustc_type_ir by rustc_middle in rustc_infer. - The DelayedMap type is exposed by rustc_middle so everything can be accessed through rustc_middle in a coherent manner. - API-layer traits, like InferCtxtLike, Interner or inherent::* must be accessed via rustc_type_ir, not rustc_middle::ty. For this reason these are not reexported by rustc_middle::ty. - Replaces use of ty::Interner by rustc_type_ir::Interner in rustc_trait_selection | ||||
| 2025-04-24 | Remove `weak` alias terminology | Boxy | -1/+1 | |
| 2025-04-08 | clean code: remove Deref<Target=RegionKind> impl for Region and use `.kind()` | xizheyin | -1/+1 | |
| Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn> | ||||
| 2025-03-15 | Fold visit into ty | Michael Goulet | -5/+3 | |
| 2025-03-15 | Squash fold into ty | Michael Goulet | -2/+1 | |
| 2025-02-26 | Use Binder<Vec<T>> instead of Vec<Binder<T>> in new solver | Michael Goulet | -2/+4 | |
| 2025-02-08 | Rustfmt | bjorn3 | -12/+12 | |
| 2025-02-02 | Move `unify_key` module. | Nicholas Nethercote | -1/+1 | |
| From `rustc_middle::infer` to `rustc_infer::infer`. Because everything in it is only used within `rustc_infer`, and no longer needs to be `pub`. Plus it's always good to make the huge `rustc_middle` crate smaller. | ||||
| 2025-01-22 | Remove `Copy` bound from `enter_forall` | Boxy | -3/+3 | |
| 2024-11-23 | no more Reveal :( | lcnr | -8/+2 | |
| 2024-10-29 | TypingMode :thinking: | lcnr | -2/+9 | |
| 2024-10-24 | Remove associated type based effects logic | Michael Goulet | -1/+0 | |
| 2024-10-12 | Swap Vec<PredicateObligation> to type alias | GnomedDev | -8/+8 | |
| 2024-10-10 | Make super combine into fns | Michael Goulet | -8/+8 | |
| 2024-10-10 | Use SolverRelating in favor of TypeRelating in the old solver where possible | Michael Goulet | -3/+2 | |
| 2024-10-10 | Remove unnecessary StructurallyRelateAliases from CombineFields/TypeRelating | Michael Goulet | -4/+1 | |
| 2024-10-10 | Use SolverRelating in new solver | Michael Goulet | -1/+0 | |
| 2024-10-10 | Uplift super_combine | Michael Goulet | -250/+5 | |
| 2024-10-10 | Move ty::Error branch into super_combine_tys | Michael Goulet | -5/+5 | |
| 2024-10-08 | Improve formatting of some comments. | Nicholas Nethercote | -2/+4 | |
| I.e. fixing comments lines that are too long or too short. | ||||
| 2024-10-07 | Remove unnecessary DefineOpaqueTypes from lub | Michael Goulet | -11/+7 | |
| 2024-10-07 | Inline CombineFields | Michael Goulet | -173/+129 | |
| 2024-10-07 | Reduce visibilities some more. | Nicholas Nethercote | -11/+11 | |
| It helps people reading the code understand how widely things are used. | ||||
| 2024-10-04 | Auto merge of #131191 - nnethercote:lattice_op, r=lcnr | bors | -403/+231 | |
| Merge `glb` and `lub` modules Tons of code is duplicated across them, and it's easy to factor that out. r? `@lcnr` | ||||
| 2024-10-04 | Remove `LatticeDir` trait. | Nicholas Nethercote | -104/+69 | |
| It's no longer necessary now that the `glb` and `lub` modules have been merged. | ||||
| 2024-10-04 | Merge `rustc_infer::infer::relate::{glb,lub}`. | Nicholas Nethercote | -333/+196 | |
| Most of the code in these two modules is duplicated in the other module. This commit eliminates the duplication by replacing them with a new module `lattice_op`. The new `LatticeOpKind` enum is used to distinguish between glb and lub in the few places where the behaviour differs. | ||||
| 2024-10-02 | review | lcnr | -3/+5 | |
| 2024-10-01 | add caches to multiple type folders | lcnr | -2/+46 | |
| 2024-09-22 | Reformat using the new identifier sorting from rustfmt | Michael Goulet | -19/+19 | |
| 2024-09-10 | generalize: track relevant info in cache key | lcnr | -9/+9 | |
| 2024-09-02 | chore: Fix typos in 'compiler' (batch 1) | Alexander Cyon | -2/+2 | |
| 2024-08-30 | Remove `#[macro_use] extern crate tracing` from `rustc_infer`. | Nicholas Nethercote | -0/+7 | |
| 2024-08-27 | Add `warn(unreachable_pub)` to `rustc_infer`. | Nicholas Nethercote | -2/+2 | |
| 2024-07-29 | Reformat `use` declarations. | Nicholas Nethercote | -36/+34 | |
| The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options. | ||||
| 2024-07-18 | Remove tag field from relations | Michael Goulet | -25/+11 | |
| 2024-07-17 | Fix relations | Michael Goulet | -15/+15 | |
| 2024-07-06 | Uplift PredicateEmittingRelation first | Michael Goulet | -39/+15 | |
| 2024-06-15 | Rollup merge of #126354 - compiler-errors:variance, r=lcnr | Matthias Krüger | -26/+16 | |
| Use `Variance` glob imported variants everywhere Fully commit to using the globbed variance. Could be convinced the other way, and change this PR to not use the globbed variants anywhere, but I'd rather we do one or the other. r? lcnr | ||||
| 2024-06-12 | Use Variance glob import everywhere | Michael Goulet | -26/+16 | |
| 2024-06-12 | Move MatchAgainstFreshVars to old solver | Michael Goulet | -123/+0 | |
| 2024-06-11 | Try not to make obligations in handle_opaque_type | Michael Goulet | -16/+7 | |
