Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | infer: remove `record_field_resolutions` field | Jonas Schievink | 2021-04-06 | 6 | -34/+13 |
| | | | | | It stores no useful data, since we can derive all fields from `variant_resolutions` | ||||
* | Merge #8364 | bors[bot] | 2021-04-06 | 2 | -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 Macovei | 2021-04-06 | 1 | -2/+2 |
| | | | | | | | | 64bit | ||||
| * | Use Box'es to reduce size of hir_def::expr::Expr from 128 to 72 bytes (on ↵ | Alexandru Macovei | 2021-04-06 | 1 | -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_ref | Lukas Wirth | 2021-04-06 | 1 | -10/+4 |
| | | |||||
* | | Move Ty accessors to TyExt | Lukas Wirth | 2021-04-06 | 12 | -224/+250 |
| | | |||||
* | | Add chalk_ir::Const to TyKind::Array | Lukas Wirth | 2021-04-06 | 11 | -43/+107 |
| | | |||||
* | | Use a constructor function for Static lifetimes | Lukas Wirth | 2021-04-06 | 6 | -49/+37 |
| | | |||||
* | | Always use Static lifetimes in chalk mapping | Lukas Wirth | 2021-04-06 | 1 | -1/+2 |
| | | |||||
* | | Add Lifetime to DynTy | Lukas Wirth | 2021-04-06 | 3 | -1/+5 |
| | | |||||
* | | Add Lifetime to TyKind::Ref | Lukas Wirth | 2021-04-06 | 12 | -39/+66 |
|/ | |||||
* | Fix shifting of binders in FnPointer | Florian Diebold | 2021-04-05 | 4 | -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 Chalk | Florian Diebold | 2021-04-05 | 9 | -40/+86 |
| | |||||
* | Substitution::prefix -> subst_prefix | Florian Diebold | 2021-04-05 | 3 | -10/+13 |
| | | | | I probably want to get rid of this function completely later. | ||||
* | Get rid of Substitution::suffix | Florian Diebold | 2021-04-05 | 2 | -10/+6 |
| | |||||
* | Remove some unused methods, move some to types.rs | Florian Diebold | 2021-04-05 | 2 | -29/+15 |
| | |||||
* | Binders::wrap_empty -> wrap_empty_binders | Florian Diebold | 2021-04-05 | 3 | -16/+12 |
| | |||||
* | Substitution::single -> from1 | Florian Diebold | 2021-04-05 | 4 | -14/+17 |
| | |||||
* | Move ProjectionTy methods to extension trait | Florian Diebold | 2021-04-05 | 7 | -32/+43 |
| | |||||
* | Merge #8353 | bors[bot] | 2021-04-05 | 4 | -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 equivalents | Lukas Wirth | 2021-04-05 | 4 | -18/+50 |
| | | |||||
* | | Use more assoc. type aliases in the chalk interner | Jonas Schievink | 2021-04-05 | 1 | -22/+21 |
|/ | | | | Makes it sligthly easier to swap out these types | ||||
* | Rename shift_bound_vars{_out} to align with Chalk | Florian Diebold | 2021-04-05 | 5 | -25/+32 |
| | |||||
* | Get rid of subst_bound_vars uses | Florian Diebold | 2021-04-05 | 3 | -5/+9 |
| | |||||
* | Get rid of some walk_mut uses | Florian Diebold | 2021-04-05 | 2 | -10/+15 |
| | |||||
* | 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 |
| |