aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove Ty::substs{_mut}Florian Diebold2021-04-074-41/+24
| | | | | | Almost all uses actually only care about ADT substs, so it's better to be explicit. The methods were a bad abstraction anyway since they already didn't include the inner types of e.g. `TyKind::Ref` anymore.
* Free Ty::def_cratesLukas Wirth2021-04-071-54/+52
|
* Move Ty::builtin_derefLukas Wirth2021-04-072-9/+9
|
* Merge #8394bors[bot]2021-04-072-33/+70
|\ | | | | | | | | | | | | | | 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 enumsLukas Wirth2021-04-072-33/+70
| |
* | Collect trait impls inside unnamed constsJonas Schievink2021-04-072-19/+57
| |
* | Remove `SolutionVariables`, add ConstrainedSubst analogous to ChalkFlorian Diebold2021-04-066-29/+49
| | | | | | | | ... just missing the constraints.
* | Align `InferenceVar` to ChalkFlorian Diebold2021-04-064-34/+48
| |
* | Clean up Chalk mapping a bitFlorian Diebold2021-04-061-69/+37
| |
* | infer: remove `record_pat_field_resolutions` fieldJonas Schievink2021-04-062-11/+1
|/ | | | | Same as https://github.com/rust-analyzer/rust-analyzer/pull/8376, this can be computed from other data
* Merge #8371bors[bot]2021-04-061-32/+17
|\ | | | | | | | | | | | | | | | | | | | | 8371: Don't use HirDisplayWrapper when displaying SourceCode r=matklad a=Veykril The issue was basically that when displaying for `DisplayTarget::SourceCode` some `hir_fmt` functions would create `HirDisplayWrapper`s which would then `fmt` these triggering the Display panic since `fmt::Display` can't fail the same way as `HirDisplay`. Simple fix is to just use `hir_fmt` directly. Should probably write that down somewhere in source, looking for a good spot to put that right now. Fixes #8077, Fixes #8370 Co-authored-by: Lukas Wirth <[email protected]>
| * Panic when creating a HirDisplayWrapper with DisplayTarget::SourceCodeLukas Wirth2021-04-061-1/+5
| |
| * Don't use HirDisplayWrapper when displaying SourceCodeLukas Wirth2021-04-061-31/+12
| |
* | infer: remove `record_field_resolutions` fieldJonas Schievink2021-04-066-34/+13
| | | | | | | | | | It stores no useful data, since we can derive all fields from `variant_resolutions`
* | Merge #8364bors[bot]2021-04-062-4/+10
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8364: Memory usage improvements r=jonas-schievink a=alexmaco These are mostly focused on splitting up enum variants with large size differences between variants by `Box`-ing things up. In my testing this reduces the memory usage somewhere in the low percentages, even though the measurements are quite noisy. Co-authored-by: Alexandru Macovei <[email protected]>
| * | Use Box'es to reduce the size of hir_def::expr::Pat from 112 to 64 bytes on ↵Alexandru Macovei2021-04-061-2/+2
| | | | | | | | | | | | 64bit
| * | Use Box'es to reduce size of hir_def::expr::Expr from 128 to 72 bytes (on ↵Alexandru Macovei2021-04-061-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 64bit systems) Rationale: only a minority of variants used almost half the size. By keeping large members (especially in Option) behind a box the memory cost is only payed when the large variants are needed. This reduces the size Vec<Expr> needs to allocate.
* | | Remove TyExt::dyn_trait_refLukas Wirth2021-04-061-10/+4
| | |
* | | Move Ty accessors to TyExtLukas Wirth2021-04-0612-224/+250
| |/ |/|
* | Add chalk_ir::Const to TyKind::ArrayLukas Wirth2021-04-0611-43/+107
| |
* | Use a constructor function for Static lifetimesLukas Wirth2021-04-066-49/+37
| |
* | Always use Static lifetimes in chalk mappingLukas Wirth2021-04-061-1/+2
| |
* | Add Lifetime to DynTyLukas Wirth2021-04-063-1/+5
| |
* | Add Lifetime to TyKind::RefLukas Wirth2021-04-0612-39/+66
|/
* Fix shifting of binders in FnPointerFlorian Diebold2021-04-054-10/+23
| | | | | | | | | - don't shift in/out for Chalk mapping (we want to have the same binders now) - do shift in when creating the signature for a closure (though it shouldn't matter much) - do shift in when lowering a `fn()` type - correctly deal with the implied binder in TypeWalk
* Align FnPointer with ChalkFlorian Diebold2021-04-059-40/+86
|
* Substitution::prefix -> subst_prefixFlorian Diebold2021-04-053-10/+13
| | | | I probably want to get rid of this function completely later.
* Get rid of Substitution::suffixFlorian Diebold2021-04-052-10/+6
|
* Remove some unused methods, move some to types.rsFlorian Diebold2021-04-052-29/+15
|
* Binders::wrap_empty -> wrap_empty_bindersFlorian Diebold2021-04-053-16/+12
|
* 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
|
* 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`