Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Rework obligation handling | Florian Diebold | 2021-05-21 | 1 | -25/+148 |
| | | | | | | | | We can't do the easy hack that we did before anymore, where we kept track of whether any inference variables changed since the last time we rechecked obligations. Instead, we store the obligations in canonicalized form; that way we can easily check the inference variables to see whether they have changed since the goal was canonicalized. | ||||
* | Fix another panic | Florian Diebold | 2021-05-21 | 1 | -17/+15 |
| | |||||
* | Fix panic | Florian Diebold | 2021-05-21 | 1 | -1/+4 |
| | |||||
* | Fix HIR expecting errors to unify with anything | Florian Diebold | 2021-05-21 | 1 | -2/+6 |
| | |||||
* | Make diverging type variables work again | Florian Diebold | 2021-05-21 | 1 | -0/+20 |
| | | | | | Chalk doesn't know about the `diverging` flag, so we need to instead propagate it before fully resolving the variables. | ||||
* | Update tests with expected changes | Florian Diebold | 2021-05-21 | 1 | -3/+0 |
| | |||||
* | Make type resolver a proper folder, make it resolve consts as well | Florian Diebold | 2021-05-21 | 1 | -48/+117 |
| | |||||
* | Fix fallback to bound vars in `unify` | Florian Diebold | 2021-05-21 | 1 | -45/+78 |
| | |||||
* | Fix warnings & format | Florian Diebold | 2021-05-21 | 1 | -11/+3 |
| | |||||
* | Rewrite coercion using the new unification | Florian Diebold | 2021-05-21 | 1 | -12/+25 |
| | |||||
* | Remove our unification code, use Chalk's instead | Florian Diebold | 2021-05-21 | 1 | -402/+97 |
| | |||||
* | fix: closure unify without check ClosureId | Comonad | 2021-04-29 | 1 | -0/+4 |
| | | | | closes #8604 | ||||
* | Remove unused | Florian Diebold | 2021-04-08 | 1 | -1/+1 |
| | |||||
* | Fix `Canonicalized::apply_solution` | Florian Diebold | 2021-04-08 | 1 | -13/+16 |
| | | | | | | Now that we're using Chalk's `substitute` which actually knows about lifetimes, the hack doesn't work anymore, but we can put in a proper lifetime. | ||||
* | Fix missing match arms | Florian Diebold | 2021-04-08 | 1 | -0/+1 |
| | |||||
* | Replace remaining `fold` calls | Florian Diebold | 2021-04-08 | 1 | -49/+62 |
| | |||||
* | Replace some `fold` calls | Florian Diebold | 2021-04-08 | 1 | -15/+4 |
| | |||||
* | Add HasInterner bounds | Florian Diebold | 2021-04-08 | 1 | -4/+12 |
| | |||||
* | Move `equals_ctor` to `TyExt` | Florian Diebold | 2021-04-07 | 1 | -1/+2 |
| | | | | | | I'd prefer getting rid of it, but it's used in the impl search and not super easy to replace there (I think ideally the impl search would do proper unification, but that's a bit more complicated). | ||||
* | Align `InferenceVar` to Chalk | Florian Diebold | 2021-04-06 | 1 | -12/+24 |
| | |||||
* | Add chalk_ir::Const to TyKind::Array | Lukas Wirth | 2021-04-06 | 1 | -1/+3 |
| | |||||
* | Add Lifetime to TyKind::Ref | Lukas Wirth | 2021-04-06 | 1 | -1/+1 |
| | |||||
* | Align FnPointer with Chalk | Florian Diebold | 2021-04-05 | 1 | -3/+3 |
| | |||||
* | Get rid of subst_bound_vars uses | Florian Diebold | 2021-04-05 | 1 | -3/+3 |
| | |||||
* | Get rid of some walk_mut uses | Florian Diebold | 2021-04-05 | 1 | -6/+9 |
| | |||||
* | Rename TyKind::Unknown to Error | Laurențiu Nicola | 2021-04-05 | 1 | -2/+2 |
| | |||||
* | Move things in hir_ty into submodules | Florian Diebold | 2021-04-04 | 1 | -1/+1 |
| | | | | | - all the types that will be replaced by Chalk go to `types` - `TypeWalk` impls go to `walk` | ||||
* | Replace last uses of SubstsBuilder by TyBuilder | Florian Diebold | 2021-04-04 | 1 | -8/+5 |
| | |||||
* | Rename Ty::interned to Ty::kind | Florian Diebold | 2021-04-03 | 1 | -6/+6 |
| | | | | ... since that's the actual method on Chalk side that matches the signature. | ||||
* | Introduce `GenericArg` like in Chalk | Florian Diebold | 2021-04-03 | 1 | -25/+30 |
| | | | | | | | Plus some more adaptations to Substitution. Lots of `assert_ty_ref` that we should revisit when introducing lifetime/const parameters. | ||||
* | Don't recheck obligations if we have learned nothing new | Florian Diebold | 2021-04-01 | 1 | -1/+7 |
| | | | | | | | | | | This is just the most trivial check: If no inference variables have been updated, and there are no new obligations, we can just skip trying to solve them again. We could be smarter about it, but this already helps quite a bit, and I don't want to touch this too much before we replace the inference table by Chalk's. Fixes #8263 (well, improves it quite a bit). | ||||
* | completion relevance consider if types can be unified | Josh Mcguigan | 2021-03-26 | 1 | -0/+4 |
| | |||||
* | Align InEnvironment with Chalk | Florian Diebold | 2021-03-21 | 1 | -5/+2 |
| | | | | | | This in particular means storing a chalk_ir::Environment, not our TraitEnvironment. This makes InEnvironment not usable for Type, where we need to keep the full TraitEnvironment. | ||||
* | Align Canonical more with Chalk's version | Florian Diebold | 2021-03-21 | 1 | -14/+30 |
| | | | | In particular, use chalk_ir::CanonicalVarKinds. | ||||
* | Introduce QuantifiedWhereClause and DynTy analogous to Chalk | Florian Diebold | 2021-03-21 | 1 | -3/+12 |
| | | | | | This introduces a bunch of new binders in lots of places, which we have to be careful about, but we had to add them at some point. | ||||
* | Turn Obligation into something similar to chalk_ir::DomainGoal | Florian Diebold | 2021-03-20 | 1 | -8/+5 |
| | | | | This includes starting to make use of Chalk's `Cast` trait. | ||||
* | Rename GenericPredicate -> WhereClause | Florian Diebold | 2021-03-20 | 1 | -11/+6 |
| | |||||
* | Replace Projection variant in GenericPredicate with AliasEq | Lukas Wirth | 2021-03-19 | 1 | -12/+23 |
| | |||||
* | Chalkify TraitRef | Florian Diebold | 2021-03-18 | 1 | -2/+2 |
| | |||||
* | Rename Substs -> Substitution | Florian Diebold | 2021-03-16 | 1 | -8/+8 |
| | |||||
* | Fix unification logic | Florian Diebold | 2021-03-15 | 1 | -1/+1 |
| | |||||
* | Don't use Substs for Ref/Raw/Array/Slice | Florian Diebold | 2021-03-14 | 1 | -5/+19 |
| | |||||
* | Make Ty wrap TyKind in an Arc | Florian Diebold | 2021-03-14 | 1 | -2/+2 |
| | | | | | | | | ... like it will be in Chalk. We still keep `interned_mut` and `into_inner` methods that will probably not exist with Chalk. This worsens performance slightly (5ginstr inference on RA), but doesn't include other simplifications we can do yet. | ||||
* | Rename some fields to their Chalk names | Florian Diebold | 2021-03-14 | 1 | -3/+3 |
| | |||||
* | Separate `Ty` and `TyKind` like in Chalk | Florian Diebold | 2021-03-13 | 1 | -44/+61 |
| | | | | | Currently `Ty` just wraps `TyKind`, but this allows us to change most places to already use `intern` / `interned`. | ||||
* | Use upstream cov-mark | Laurențiu Nicola | 2021-03-08 | 1 | -5/+3 |
| | |||||
* | Introduce Ty::Alias | Lukas Wirth | 2021-03-01 | 1 | -3/+3 |
| | |||||
* | Assert index relationship between type_variable_table and var_unification_table | Lukas Wirth | 2021-03-01 | 1 | -20/+11 |
| | |||||
* | Being Ty::InferenceVar closes to chalk equivalent | Lukas Wirth | 2021-03-01 | 1 | -74/+119 |
| | |||||
* | Inline TypeCtor into Ty | Lukas Wirth | 2021-02-28 | 1 | -24/+14 |
| |