Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Intern ProgramClauses | Florian Diebold | 2021-04-08 | 1 | -2/+3 |
| | |||||
* | Intern CanonicalVarKinds | Florian Diebold | 2021-04-08 | 1 | -2/+3 |
| | | | | Slight savings in performance and memory. | ||||
* | Intern consts & lifetimes | Florian Diebold | 2021-04-08 | 2 | -7/+20 |
| | | | | Slight memory usage reduction. | ||||
* | Intern types | Florian Diebold | 2021-04-08 | 1 | -3/+7 |
| | | | | Performance about the same, memory reduced by ~5%. | ||||
* | Intern Substitutions | Florian Diebold | 2021-04-08 | 7 | -26/+33 |
| | | | | (Costs a bit of performance, reduces memory usage on RA by ~10%.) | ||||
* | Intern VariableKinds | Florian Diebold | 2021-04-08 | 1 | -4/+14 |
| | |||||
* | Remove unused | Florian Diebold | 2021-04-08 | 14 | -69/+20 |
| | |||||
* | Replace `make_binders` by the now equivalent `make_only_type_binders` | Florian Diebold | 2021-04-08 | 2 | -35/+22 |
| | |||||
* | Remove identity impls for ToChalk | Florian Diebold | 2021-04-08 | 4 | -215/+21 |
| | |||||
* | Fix `Canonicalized::apply_solution` | Florian Diebold | 2021-04-08 | 1 | -13/+16 |
| | | | | | | Now that we're using Chalk's `substitute` which actually knows about lifetimes, the hack doesn't work anymore, but we can put in a proper lifetime. | ||||
* | Fix missing match arms | Florian Diebold | 2021-04-08 | 4 | -2/+20 |
| | |||||
* | Fix remaining `interned_mut` call | Florian Diebold | 2021-04-08 | 1 | -4/+6 |
| | |||||
* | Replace remaining `fold` calls | Florian Diebold | 2021-04-08 | 3 | -59/+104 |
| | |||||
* | Replace some `fold` calls | Florian Diebold | 2021-04-08 | 4 | -47/+53 |
| | |||||
* | Fix shifted_{in,out} calls | Florian Diebold | 2021-04-08 | 5 | -11/+11 |
| | |||||
* | Fix subst_prefix | Florian Diebold | 2021-04-08 | 1 | -1/+4 |
| | |||||
* | Get rid of walk_mut [not compiling] | Florian Diebold | 2021-04-08 | 1 | -272/+0 |
| | |||||
* | Fix TyBuilder methods | Florian Diebold | 2021-04-08 | 1 | -5/+5 |
| | |||||
* | Impl Fold for CallableSig | Florian Diebold | 2021-04-08 | 1 | -0/+18 |
| | |||||
* | Add HasInterner bounds | Florian Diebold | 2021-04-08 | 6 | -14/+35 |
| | |||||
* | Allow unused | Florian Diebold | 2021-04-08 | 1 | -0/+3 |
| | |||||
* | Remove obsolete Cast impls | Florian Diebold | 2021-04-08 | 1 | -47/+0 |
| | |||||
* | Make ToChalk implementations identity | Florian Diebold | 2021-04-08 | 2 | -272/+42 |
| | |||||
* | Replace all the types by their Chalk versions | Florian Diebold | 2021-04-08 | 3 | -554/+32 |
| | |||||
* | Merge #8409 | bors[bot] | 2021-04-07 | 14 | -66/+73 |
|\ | | | | | | | | | | | | | | | 8409: Various remaining fixes for Chalk IR move r=flodiebold a=flodiebold CC #8313 Co-authored-by: Florian Diebold <[email protected]> | ||||
| * | Fix return type of Substitution::interned | Florian Diebold | 2021-04-07 | 3 | -3/+3 |
| | | |||||
| * | InEnvironment::new takes a reference | Florian Diebold | 2021-04-07 | 4 | -5/+5 |
| | | |||||
| * | Make Canonical::new a free-standing function | Florian Diebold | 2021-04-07 | 1 | -10/+12 |
| | | |||||
| * | Fix return type of `self_type_parameter` | Florian Diebold | 2021-04-07 | 4 | -10/+10 |
| | | |||||
| * | 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 |
| | | |