Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
| * | Move hir_trait_id to extension trait | Florian Diebold | 2021-04-07 | 10 | -18/+25 | |
| | | ||||||
| * | Change TraitRef::hir_fmt_ext to free-standing function | Florian Diebold | 2021-04-07 | 1 | -20/+18 | |
| | | ||||||
* | | Move `equals_ctor` to `TyExt` | Florian Diebold | 2021-04-07 | 3 | -33/+37 | |
|/ | | | | | | I'd prefer getting rid of it, but it's used in the impl search and not super easy to replace there (I think ideally the impl search would do proper unification, but that's a bit more complicated). | |||||
* | Remove Ty::substs{_mut} | Florian Diebold | 2021-04-07 | 4 | -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_crates | Lukas Wirth | 2021-04-07 | 1 | -54/+52 | |
| | ||||||
* | Move Ty::builtin_deref | Lukas Wirth | 2021-04-07 | 2 | -9/+9 | |
| | ||||||
* | 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 | |
| |