Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add Interner parameter to Binders::substitute | Florian Diebold | 2021-04-05 | 11 | -37/+44 |
| | |||||
* | Binders::subst -> substitute | Florian Diebold | 2021-04-05 | 11 | -34/+34 |
| | |||||
* | Use VariableKinds in Binders | Florian Diebold | 2021-04-05 | 7 | -84/+107 |
| | |||||
* | Hide Binders internals more | Florian Diebold | 2021-04-05 | 9 | -84/+104 |
| | |||||
* | Use arrayvec 0.7 to avoid perf regression in 0.6.1 | kjeremy | 2021-04-05 | 1 | -1/+1 |
| | | | | See: https://github.com/bluss/arrayvec/issues/182 | ||||
* | Pass interner to TraitRef::self_type_parameter | Laurențiu Nicola | 2021-04-05 | 4 | -20/+24 |
| | |||||
* | Pass interner to ProjectionTy::self_type_parameter | Laurențiu Nicola | 2021-04-05 | 4 | -7/+7 |
| | |||||
* | Rename TyKind::ForeignType to Foreign | Laurențiu Nicola | 2021-04-05 | 6 | -9/+9 |
| | |||||
* | Rename TyKind::Unknown to Error | Laurențiu Nicola | 2021-04-05 | 13 | -47/+47 |
| | |||||
* | Intern `GenericParams` | Jonas Schievink | 2021-04-05 | 1 | -1/+2 |
| | | | | | Also share the same instance between `ItemTree` and `generic_params` query. | ||||
* | Intern more `TypeRef`s in generics | Jonas Schievink | 2021-04-05 | 1 | -5/+4 |
| | | | | Saves ~3 MB | ||||
* | Move things from `traits` module to `types` as well | Florian Diebold | 2021-04-04 | 11 | -107/+103 |
| | |||||
* | Move things in hir_ty into submodules | Florian Diebold | 2021-04-04 | 10 | -706/+750 |
| | | | | | - all the types that will be replaced by Chalk go to `types` - `TypeWalk` impls go to `walk` | ||||
* | Add comment | Florian Diebold | 2021-04-04 | 1 | -0/+3 |
| | |||||
* | Replace Substitution::type_params | Florian Diebold | 2021-04-04 | 4 | -12/+11 |
| | |||||
* | Replace Substitution::bound_vars and ::type_params_for_generics | Florian Diebold | 2021-04-04 | 7 | -54/+42 |
| | |||||
* | Move TyBuilder to its own module | Florian Diebold | 2021-04-04 | 2 | -204/+221 |
| | |||||
* | Replace last uses of SubstsBuilder by TyBuilder | Florian Diebold | 2021-04-04 | 4 | -64/+23 |
| | |||||
* | Remove CallableSig::from_substs | Florian Diebold | 2021-04-04 | 1 | -11/+1 |
| | |||||
* | Use TyBuilder in another place | Florian Diebold | 2021-04-04 | 1 | -4/+3 |
| | |||||
* | Some more TyBuilder use | Florian Diebold | 2021-04-04 | 2 | -33/+25 |
| | |||||
* | Replace remaining uses of Substitution::build_for_def | Florian Diebold | 2021-04-04 | 5 | -18/+44 |
| | |||||
* | More TyBuilder use | Florian Diebold | 2021-04-04 | 1 | -12/+9 |
| | |||||
* | More TyBuilder use | Florian Diebold | 2021-04-04 | 1 | -23/+15 |
| | |||||
* | Add and start using TraitRef and ProjectionTy builders | Florian Diebold | 2021-04-04 | 4 | -22/+39 |
| | |||||
* | Move Ty::builtin to TyBuilder | Florian Diebold | 2021-04-04 | 2 | -18/+18 |
| | |||||
* | Add TyBuilder::adt | Florian Diebold | 2021-04-04 | 4 | -45/+104 |
| | |||||
* | Move Ty::fn_ptr to TyBuilder | Florian Diebold | 2021-04-04 | 2 | -11/+12 |
| | |||||
* | Add TyBuilder::unit() and TyExt::is_unit() | Florian Diebold | 2021-04-04 | 7 | -25/+39 |
| | |||||
* | Add TyBuilder | Florian Diebold | 2021-04-04 | 1 | -0/+6 |
| | |||||
* | Access a body's block def maps via a method | Jonas Schievink | 2021-04-04 | 2 | -3/+2 |
| | |||||
* | Use bitflags to compress function properties | Jonas Schievink | 2021-04-03 | 4 | -6/+6 |
| | | | | Very minor savings, only 1 MB or so | ||||
* | Rename Ty::interned to Ty::kind | Florian Diebold | 2021-04-03 | 16 | -62/+60 |
| | | | | ... since that's the actual method on Chalk side that matches the signature. | ||||
* | Introduce `GenericArg` like in Chalk | Florian Diebold | 2021-04-03 | 16 | -152/+301 |
| | | | | | | | Plus some more adaptations to Substitution. Lots of `assert_ty_ref` that we should revisit when introducing lifetime/const parameters. | ||||
* | Merge #8284 | bors[bot] | 2021-04-02 | 1 | -1/+1 |
|\ | | | | | | | | | | | | | | | 8284: Reduce memory usage by using global `Arc`-based interning r=jonas-schievink a=jonas-schievink This saves around 50 mb when running `analysis-stats` on r-a itself. Not a lot, but this infra can be easily reused to intern more stuff. Co-authored-by: Jonas Schievink <[email protected]> | ||||
| * | Global TypeRef/TraitRef interning | Jonas Schievink | 2021-04-01 | 1 | -1/+1 |
| | | |||||
* | | Merge #8287 | bors[bot] | 2021-04-02 | 1 | -36/+33 |
|\ \ | | | | | | | | | | | | | | | | | | | | | | 8287: Don't allocate in `associated_type_shorthand_candidates` r=Veykril a=Veykril Co-authored-by: Lukas Wirth <[email protected]> | ||||
| * | | Don't allocate in `associated_type_shorthand_candidates` | Lukas Wirth | 2021-04-02 | 1 | -36/+33 |
| | | | |||||
* | | | minor: add profile call for resolve_obligations | Aleksey Kladov | 2021-04-02 | 1 | -0/+2 |
| | | | |||||
* | | | Merge #8285 | bors[bot] | 2021-04-02 | 4 | -8/+26 |
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | 8285: Don't recheck obligations if we have learned nothing new r=matklad a=flodiebold 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). Co-authored-by: Florian Diebold <[email protected]> | ||||
| * | | Don't recheck obligations if we have learned nothing new | Florian Diebold | 2021-04-01 | 4 | -8/+26 |
| |/ | | | | | | | | | | | | | | | | | | | 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). | ||||
* | | Merge #8283 | bors[bot] | 2021-04-01 | 1 | -1/+1 |
|\ \ | |/ |/| | | | | | | | | | | | 8283: Resolve associated types r=flodiebold a=Veykril Prior we were only resolving paths until the first type was found, then discarding the result if the path wasn't fully consumed. That of course causes associated types to not resolve. Fixes #5003 Co-authored-by: Lukas Wirth <[email protected]> | ||||
| * | Resolve associated types with type anchors | Lukas Wirth | 2021-04-01 | 1 | -1/+1 |
| | | |||||
* | | Fix block inner item defined in macro | Edwin Cheng | 2021-03-31 | 1 | -0/+26 |
|/ | |||||
* | Merge #8266 | bors[bot] | 2021-03-31 | 1 | -0/+43 |
|\ | | | | | | | | | | | | | | | | | | | 8266: Fix generic arguments being incorrectly offset in qualified trait casts r=flodiebold a=Veykril We reverse the segments and generic args of the lowered path after building it, this wasn't accounted for when inserting the self parameter in `Type as Trait` segments. Fixes #5886 Co-authored-by: Lukas Wirth <[email protected]> | ||||
| * | Fix generic arguments being incorrectly offset in qualified trait casts | Lukas Wirth | 2021-03-30 | 1 | -0/+43 |
| | | |||||
* | | Merge #8186 | bors[bot] | 2021-03-30 | 1 | -8/+4 |
|\ \ | | | | | | | | | | | | | | | | | | | | | | 8186: Lower traits to `TraitRef` instead of `TypeRef` r=matklad a=Veykril Co-authored-by: Lukas Wirth <[email protected]> | ||||
| * | | Remove TraitRef::Error | Lukas Wirth | 2021-03-29 | 1 | -4/+1 |
| | | | |||||
| * | | Rename target_ty to self_ty | Lukas Wirth | 2021-03-29 | 1 | -1/+1 |
| | | | |||||
| * | | Lower traits to TraitRef instead of TypeRef | Lukas Wirth | 2021-03-29 | 1 | -7/+6 |
| | | |