aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty
Commit message (Collapse)AuthorAgeFilesLines
...
* Substitution::single -> from1Florian Diebold2021-04-054-14/+17
|
* Move ProjectionTy methods to extension traitFlorian Diebold2021-04-057-32/+43
|
* Merge #8353bors[bot]2021-04-054-18/+50
|\ | | | | | | | | | | | | | | 8353: Replace hir_ty::Lifetime with chalk equivalent r=flodiebold a=Veykril Our `Lifetime` isn't really used yet so this is a rather simple change Co-authored-by: Lukas Wirth <[email protected]>
| * Replace unused hir_ty::Lifetime with chalk equivalentsLukas Wirth2021-04-054-18/+50
| |
* | Use more assoc. type aliases in the chalk internerJonas Schievink2021-04-051-22/+21
|/ | | | Makes it sligthly easier to swap out these types
* Rename shift_bound_vars{_out} to align with ChalkFlorian Diebold2021-04-055-25/+32
|
* Get rid of subst_bound_vars usesFlorian Diebold2021-04-053-5/+9
|
* Get rid of some walk_mut usesFlorian Diebold2021-04-052-10/+15
|
* Add Interner parameter to Binders::substituteFlorian Diebold2021-04-0511-37/+44
|
* Binders::subst -> substituteFlorian Diebold2021-04-0511-34/+34
|
* Use VariableKinds in BindersFlorian Diebold2021-04-057-84/+107
|
* Hide Binders internals moreFlorian Diebold2021-04-059-84/+104
|
* Use arrayvec 0.7 to avoid perf regression in 0.6.1kjeremy2021-04-051-1/+1
| | | | See: https://github.com/bluss/arrayvec/issues/182
* Pass interner to TraitRef::self_type_parameterLaurențiu Nicola2021-04-054-20/+24
|
* Pass interner to ProjectionTy::self_type_parameterLaurențiu Nicola2021-04-054-7/+7
|
* Rename TyKind::ForeignType to ForeignLaurențiu Nicola2021-04-056-9/+9
|
* Rename TyKind::Unknown to ErrorLaurențiu Nicola2021-04-0513-47/+47
|
* Intern `GenericParams`Jonas Schievink2021-04-051-1/+2
| | | | | Also share the same instance between `ItemTree` and `generic_params` query.
* Intern more `TypeRef`s in genericsJonas Schievink2021-04-051-5/+4
| | | | Saves ~3 MB
* Move things from `traits` module to `types` as wellFlorian Diebold2021-04-0411-107/+103
|
* Move things in hir_ty into submodulesFlorian Diebold2021-04-0410-706/+750
| | | | | - all the types that will be replaced by Chalk go to `types` - `TypeWalk` impls go to `walk`
* Add commentFlorian Diebold2021-04-041-0/+3
|
* Replace Substitution::type_paramsFlorian Diebold2021-04-044-12/+11
|
* Replace Substitution::bound_vars and ::type_params_for_genericsFlorian Diebold2021-04-047-54/+42
|
* Move TyBuilder to its own moduleFlorian Diebold2021-04-042-204/+221
|
* Replace last uses of SubstsBuilder by TyBuilderFlorian Diebold2021-04-044-64/+23
|
* Remove CallableSig::from_substsFlorian Diebold2021-04-041-11/+1
|
* Use TyBuilder in another placeFlorian Diebold2021-04-041-4/+3
|
* Some more TyBuilder useFlorian Diebold2021-04-042-33/+25
|
* Replace remaining uses of Substitution::build_for_defFlorian Diebold2021-04-045-18/+44
|
* More TyBuilder useFlorian Diebold2021-04-041-12/+9
|
* More TyBuilder useFlorian Diebold2021-04-041-23/+15
|
* Add and start using TraitRef and ProjectionTy buildersFlorian Diebold2021-04-044-22/+39
|
* Move Ty::builtin to TyBuilderFlorian Diebold2021-04-042-18/+18
|
* Add TyBuilder::adtFlorian Diebold2021-04-044-45/+104
|
* Move Ty::fn_ptr to TyBuilderFlorian Diebold2021-04-042-11/+12
|
* Add TyBuilder::unit() and TyExt::is_unit()Florian Diebold2021-04-047-25/+39
|
* Add TyBuilderFlorian Diebold2021-04-041-0/+6
|
* Access a body's block def maps via a methodJonas Schievink2021-04-042-3/+2
|
* Use bitflags to compress function propertiesJonas Schievink2021-04-034-6/+6
| | | | Very minor savings, only 1 MB or so
* Rename Ty::interned to Ty::kindFlorian Diebold2021-04-0316-62/+60
| | | | ... since that's the actual method on Chalk side that matches the signature.
* Introduce `GenericArg` like in ChalkFlorian Diebold2021-04-0316-152/+301
| | | | | | | Plus some more adaptations to Substitution. Lots of `assert_ty_ref` that we should revisit when introducing lifetime/const parameters.
* Merge #8284bors[bot]2021-04-021-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 interningJonas Schievink2021-04-011-1/+1
| |
* | Merge #8287bors[bot]2021-04-021-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 Wirth2021-04-021-36/+33
| | |
* | | minor: add profile call for resolve_obligationsAleksey Kladov2021-04-021-0/+2
| | |
* | | Merge #8285bors[bot]2021-04-024-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 newFlorian Diebold2021-04-014-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 #8283bors[bot]2021-04-011-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]>