Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fix type inference not working for new Try trait | Lukas Wirth | 2021-05-25 | 1 | -1/+4 |
| | |||||
* | Record method call substs and use them in call info | Florian Diebold | 2021-05-23 | 1 | -11/+14 |
| | |||||
* | Some remaining cleanups | Florian Diebold | 2021-05-21 | 1 | -4/+0 |
| | |||||
* | Refactor expectation handling | Florian Diebold | 2021-05-21 | 1 | -20/+39 |
| | | | | So as to not use `TyKind::Error` as "no expectation". | ||||
* | Deal with goals arising from unification | Florian Diebold | 2021-05-21 | 1 | -3/+3 |
| | |||||
* | Get rid of resolve_ty_as_possible | Florian Diebold | 2021-05-21 | 1 | -17/+17 |
| | | | | Instead use shallow resolving where necessary. | ||||
* | Make resolve_ty_shallow return Ty | Florian Diebold | 2021-05-21 | 1 | -3/+1 |
| | |||||
* | Rework obligation handling | Florian Diebold | 2021-05-21 | 1 | -69/+15 |
| | | | | | | | | 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. | ||||
* | Make diverging type variables work again | Florian Diebold | 2021-05-21 | 1 | -0/+3 |
| | | | | | Chalk doesn't know about the `diverging` flag, so we need to instead propagate it before fully resolving the variables. | ||||
* | Temporary fix for unknown expectations | Florian Diebold | 2021-05-21 | 1 | -0/+4 |
| | |||||
* | Rewrite coercion using the new unification | Florian Diebold | 2021-05-21 | 1 | -0/+12 |
| | |||||
* | Remove our unification code, use Chalk's instead | Florian Diebold | 2021-05-21 | 1 | -11/+7 |
| | |||||
* | internal: Record mismatches of pattern types. | Dawer | 2021-05-19 | 1 | -2/+21 |
| | |||||
* | Remove unused | Florian Diebold | 2021-04-08 | 1 | -1/+0 |
| | |||||
* | Replace remaining `fold` calls | Florian Diebold | 2021-04-08 | 1 | -10/+15 |
| | |||||
* | InEnvironment::new takes a reference | Florian Diebold | 2021-04-07 | 1 | -1/+1 |
| | |||||
* | Merge #8394 | bors[bot] | 2021-04-07 | 1 | -33/+37 |
|\ | | | | | | | | | | | | | | | 8394: Infer variants through type aliased enums r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]> | ||||
| * | Infer variants through type aliased enums | Lukas Wirth | 2021-04-07 | 1 | -33/+37 |
| | | |||||
* | | Remove `SolutionVariables`, add ConstrainedSubst analogous to Chalk | Florian Diebold | 2021-04-06 | 1 | -4/+11 |
| | | | | | | | | ... just missing the constraints. | ||||
* | | Align `InferenceVar` to Chalk | Florian Diebold | 2021-04-06 | 1 | -19/+0 |
| | | |||||
* | | infer: remove `record_pat_field_resolutions` field | Jonas Schievink | 2021-04-06 | 1 | -5/+1 |
|/ | | | | | Same as https://github.com/rust-analyzer/rust-analyzer/pull/8376, this can be computed from other data | ||||
* | infer: remove `record_field_resolutions` field | Jonas Schievink | 2021-04-06 | 1 | -5/+0 |
| | | | | | It stores no useful data, since we can derive all fields from `variant_resolutions` | ||||
* | Move Ty accessors to TyExt | Lukas Wirth | 2021-04-06 | 1 | -1/+1 |
| | |||||
* | Add Interner parameter to Binders::substitute | Florian Diebold | 2021-04-05 | 1 | -4/+4 |
| | |||||
* | Binders::subst -> substitute | Florian Diebold | 2021-04-05 | 1 | -4/+4 |
| | |||||
* | Rename TyKind::Unknown to Error | Laurențiu Nicola | 2021-04-05 | 1 | -7/+7 |
| | |||||
* | Move things from `traits` module to `types` as well | Florian Diebold | 2021-04-04 | 1 | -2/+2 |
| | |||||
* | Replace Substitution::bound_vars and ::type_params_for_generics | Florian Diebold | 2021-04-04 | 1 | -2/+2 |
| | |||||
* | Replace remaining uses of Substitution::build_for_def | Florian Diebold | 2021-04-04 | 1 | -2/+1 |
| | |||||
* | Add and start using TraitRef and ProjectionTy builders | Florian Diebold | 2021-04-04 | 1 | -5/+3 |
| | |||||
* | Rename Ty::interned to Ty::kind | Florian Diebold | 2021-04-03 | 1 | -2/+2 |
| | | | | ... since that's the actual method on Chalk side that matches the signature. | ||||
* | minor: add profile call for resolve_obligations | Aleksey Kladov | 2021-04-02 | 1 | -0/+2 |
| | |||||
* | Don't recheck obligations if we have learned nothing new | Florian Diebold | 2021-04-01 | 1 | -3/+15 |
| | | | | | | | | | | 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/+5 |
| | |||||
* | Align InEnvironment with Chalk | Florian Diebold | 2021-03-21 | 1 | -1/+1 |
| | | | | | | 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. | ||||
* | Turn Obligation into something similar to chalk_ir::DomainGoal | Florian Diebold | 2021-03-20 | 1 | -6/+6 |
| | | | | This includes starting to make use of Chalk's `Cast` trait. | ||||
* | Replace Projection variant in GenericPredicate with AliasEq | Lukas Wirth | 2021-03-19 | 1 | -9/+9 |
| | |||||
* | Chalkify TraitRef | Florian Diebold | 2021-03-18 | 1 | -2/+3 |
| | |||||
* | Rename Substs -> Substitution | Florian Diebold | 2021-03-16 | 1 | -4/+4 |
| | |||||
* | Merge #8018 | bors[bot] | 2021-03-15 | 1 | -6/+24 |
|\ | | | | | | | | | | | | | | | | | | | 8018: Make Ty wrap TyKind in an Arc r=flodiebold a=flodiebold ... to further move towards Chalk. This is a bit of a slowdown (218ginstr vs 213ginstr for inference on RA), even though it allows us to unwrap the Substs in `TyKind::Ref` etc.. Co-authored-by: Florian Diebold <[email protected]> | ||||
| * | Make Ty wrap TyKind in an Arc | Florian Diebold | 2021-03-14 | 1 | -6/+24 |
| | | | | | | | | | | | | | | | | ... 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. | ||||
* | | Simplify source maps for fields | Aleksey Kladov | 2021-03-15 | 1 | -3/+3 |
|/ | |||||
* | Rename some fields to their Chalk names | Florian Diebold | 2021-03-14 | 1 | -2/+2 |
| | |||||
* | Move type lowering methods to TyLoweringContext | Florian Diebold | 2021-03-13 | 1 | -5/+5 |
| | |||||
* | Create TraitEnvironment through a query | Florian Diebold | 2021-03-13 | 1 | -1/+3 |
| | |||||
* | Use chalk_ir::PlaceholderIndex | Florian Diebold | 2021-03-13 | 1 | -1/+1 |
| | |||||
* | Use chalk_ir::AssocTypeId | Florian Diebold | 2021-03-13 | 1 | -2/+5 |
| | |||||
* | Separate `Ty` and `TyKind` like in Chalk | Florian Diebold | 2021-03-13 | 1 | -21/+28 |
| | | | | | Currently `Ty` just wraps `TyKind`, but this allows us to change most places to already use `intern` / `interned`. | ||||
* | Use chalk_ir::Mutability | Lukas Wirth | 2021-03-01 | 1 | -2/+3 |
| | |||||
* | Introduce Ty::Alias | Lukas Wirth | 2021-03-01 | 1 | -2/+2 |
| |