Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Merge #8394 | bors[bot] | 2021-04-07 | 2 | -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 enums | Lukas Wirth | 2021-04-07 | 2 | -33/+70 | |
| | | ||||||
* | | Collect trait impls inside unnamed consts | Jonas Schievink | 2021-04-07 | 2 | -19/+57 | |
| | | ||||||
* | | Remove `SolutionVariables`, add ConstrainedSubst analogous to Chalk | Florian Diebold | 2021-04-06 | 6 | -29/+49 | |
| | | | | | | | | ... just missing the constraints. | |||||
* | | Align `InferenceVar` to Chalk | Florian Diebold | 2021-04-06 | 4 | -34/+48 | |
| | | ||||||
* | | Clean up Chalk mapping a bit | Florian Diebold | 2021-04-06 | 1 | -69/+37 | |
| | | ||||||
* | | infer: remove `record_pat_field_resolutions` field | Jonas Schievink | 2021-04-06 | 2 | -11/+1 | |
|/ | | | | | Same as https://github.com/rust-analyzer/rust-analyzer/pull/8376, this can be computed from other data | |||||
* | Merge #8371 | bors[bot] | 2021-04-06 | 1 | -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::SourceCode | Lukas Wirth | 2021-04-06 | 1 | -1/+5 | |
| | | ||||||
| * | Don't use HirDisplayWrapper when displaying SourceCode | Lukas Wirth | 2021-04-06 | 1 | -31/+12 | |
| | | ||||||
* | | 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 | |
| |