| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2024-02-06 | Regular closures now built-in impls for AsyncFn* | Michael Goulet | -1/+72 | |
| 2024-02-06 | add fixme | Lukas Markeffsky | -1/+4 | |
| 2024-02-06 | Flatten confirmation logic | Michael Goulet | -54/+51 | |
| 2024-02-06 | More comments, final tweaks | Michael Goulet | -6/+18 | |
| 2024-02-06 | Bless tests, add comments | Michael Goulet | -7/+10 | |
| 2024-02-06 | Construct body for by-move coroutine closure output | Michael Goulet | -0/+1 | |
| 2024-02-06 | Teach typeck/borrowck/solvers how to deal with async closures | Michael Goulet | -1/+301 | |
| 2024-02-06 | Add CoroutineClosure to TyKind, AggregateKind, UpvarArgs | Michael Goulet | -2/+17 | |
| 2024-02-05 | new solver: improve normalization of `Pointee::Metadata` | Lukas Markeffsky | -18/+6 | |
| 2024-02-03 | No need to validate_alias_bound_self_from_param_env in ↵ | Michael Goulet | -115/+1 | |
| assemble_alias_bound_candidates | ||||
| 2024-02-02 | Remove dead args from functions | Michael Goulet | -20/+1 | |
| 2024-01-29 | merge builtin unsize candidates again | lcnr | -87/+41 | |
| 2024-01-29 | bye bye `assemble_candidates_via_self_ty` | lcnr | -111/+31 | |
| 2024-01-23 | Random type checker changes | Michael Goulet | -1/+1 | |
| 2024-01-19 | Add trait obligation tracking to FulfillCtxt and expose FnCtxt in ↵ | Gavin Gray | -60/+76 | |
| rustc_infer using callback. Pass each obligation to an fn callback with its respective inference context. This avoids needing to keep around copies of obligations or inference contexts. Specify usability of inspect_typeck in comment. | ||||
| 2024-01-15 | Rollup merge of #119897 - compiler-errors:fulfillment-errors, r=lcnr | Matthias Krüger | -8/+8 | |
| `OutputTypeParameterMismatch` -> `SignatureMismatch` I'm probably missing something that made this rename more complicated. What did you end up getting stuck on when renaming this selection error, `@lcnr?` **also** I renamed the `FulfillmentErrorCode` variants. This is just churn but I wanted to do it forever. I can move it out of this PR if desired. r? lcnr | ||||
| 2024-01-13 | assert that trait solver is only created in proper infcx | Michael Goulet | -0/+5 | |
| 2024-01-12 | Remove redundant Code from FulfillmentErrorCode variants | Michael Goulet | -8/+8 | |
| 2024-01-12 | Rollup merge of #119817 - compiler-errors:normalize-opaques, r=lcnr | Guillaume Gomez | -19/+22 | |
| Remove special-casing around `AliasKind::Opaque` when structurally resolving in new solver This fixes a few inconsistencies around where we don't eagerly resolve opaques to their (locally-defined) hidden types in the new solver. It essentially allows this code to work: ```rust fn main() { type Tait = impl Sized; struct S { i: i32, } let x: Tait = S { i: 0 }; println!("{}", x.i); } ``` Since `Tait` is defined in `main`, we are able to poke through the type of `x` with deref. r? lcnr | ||||
| 2024-01-12 | Auto merge of #119735 - lcnr:provisional-cache-readd, r=compiler-errors | bors | -111/+265 | |
| next solver: provisional cache this adds the cache removed in #115843. However, it should now correctly track whether a provisional result depends on an inductive or coinductive stack. While working on this, I was using the following doc: https://hackmd.io/VsQPjW3wSTGUSlmgwrDKOA. I don't think it's too helpful to understanding this, but am somewhat hopeful that the inline comments are more useful. There are quite a few future perf improvements here. Given that this is already very involved I don't believe it is worth it (for now). While working on this PR one of my few attempts to significantly improve perf ended up being unsound again because I was not careful enough :sparkles: r? `@compiler-errors` | ||||
| 2024-01-11 | Remove special-casing around aliaskind in new solver | Michael Goulet | -19/+22 | |
| 2024-01-10 | More comments | Michael Goulet | -10/+30 | |
| 2024-01-10 | Check reveal and can_define_opaque_ty in try_normalize_ty_recur | Michael Goulet | -12/+16 | |
| 2024-01-09 | this is not a rust code snippet | lcnr | -4/+5 | |
| 2024-01-09 | add comments and tests | lcnr | -36/+58 | |
| 2024-01-09 | avoid always rerunning in case of a cycle | lcnr | -34/+71 | |
| 2024-01-09 | readd the provisional cache | lcnr | -62/+161 | |
| 2024-01-08 | `all` to `any` | lcnr | -5/+5 | |
| don't really know why, but it is a lot easier for me to think about cycles that way. | ||||
| 2024-01-08 | do not track root depth of cycles | lcnr | -37/+32 | |
| results in slightly cleaner logic while making the following commit easier | ||||
| 2024-01-08 | use doc comments | lcnr | -3/+3 | |
| 2023-12-28 | Movability doesn't need to be a query anymore | Michael Goulet | -2/+2 | |
| 2023-12-28 | Remove movability from TyKind::Coroutine | Michael Goulet | -22/+24 | |
| 2023-12-24 | Remove `Session` methods that duplicate `DiagCtxt` methods. | Nicholas Nethercote | -2/+2 | |
| Also add some `dcx` methods to types that wrap `TyCtxt`, for easier access. | ||||
| 2023-12-19 | add comment | lcnr | -0/+14 | |
| 2023-12-18 | dont discard overflow from normalizes-to goals | lcnr | -22/+45 | |
| 2023-12-18 | track the source of nested goals | lcnr | -77/+145 | |
| 2023-12-15 | Annotate some bugs | Michael Goulet | -2/+9 | |
| 2023-12-14 | Unconditionally register alias-relate in projection goal | Michael Goulet | -11/+23 | |
| 2023-12-14 | consistently use "next solver" instead of "new solver" | lcnr | -4/+4 | |
| 2023-12-14 | update use of feature flags | lcnr | -5/+4 | |
| 2023-12-14 | rename `-Ztrait-solver` to `-Znext-solver` | lcnr | -4/+5 | |
| 2023-12-12 | refactor writeback: emit normalization errors with new solver | lcnr | -5/+4 | |
| 2023-12-08 | Rollup merge of #117586 - compiler-errors:the-canonicalizer, r=lcnr | Matthias Krüger | -430/+1 | |
| Uplift the (new solver) canonicalizer into `rustc_next_trait_solver` Uplifts the new trait solver's canonicalizer into a new crate called `rustc_next_trait_solver`. The crate name is literally a bikeshed-avoidance name, so let's not block this PR on that -- renames are welcome later. There are a host of other changes that were required to make this possible: * Expose a `ConstTy` trait to get the `Interner::Ty` from a `Interner::Const`. * Expose some constructor methods to construct `Bound` variants. These are currently methods defined on the interner themselves, but they could be pulled into traits later. * Expose a `IntoKind` trait to turn a `Ty`/`Const`/`Region` into their corresponding `*Kind`s. * Some minor tweaks to other APIs in `rustc_type_ir`. The canonicalizer code itself is best reviewed **with whitespace ignored.** r? ``@lcnr`` | ||||
| 2023-12-08 | Uplift canonicalizer into new trait solver crate | Michael Goulet | -430/+1 | |
| 2023-12-08 | Implement `async gen` blocks | Michael Goulet | -0/+65 | |
| 2023-12-08 | implement and use `NormalizesTo` | lcnr | -61/+71 | |
| 2023-12-07 | add unused `NormalizesTo` predicate | lcnr | -0/+6 | |
| 2023-12-05 | Continue folding if deep normalizer fails | Michael Goulet | -14/+40 | |
| 2023-12-05 | Add deeply_normalize_for_diagnostics, use it in coherence | Michael Goulet | -2/+18 | |
| 2023-12-02 | Rename `HandlerInner::delay_span_bug` as `HandlerInner::span_delayed_bug`. | Nicholas Nethercote | -2/+2 | |
| Because the corresponding `Level` is `DelayedBug` and `span_delayed_bug` follows the pattern used everywhere else: `span_err`, `span_warning`, etc. | ||||
