aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src
Commit message (Collapse)AuthorAgeFilesLines
* Intern ProgramClausesFlorian Diebold2021-04-081-2/+3
|
* Intern CanonicalVarKindsFlorian Diebold2021-04-081-2/+3
| | | | Slight savings in performance and memory.
* Intern consts & lifetimesFlorian Diebold2021-04-082-7/+20
| | | | Slight memory usage reduction.
* Intern typesFlorian Diebold2021-04-081-3/+7
| | | | Performance about the same, memory reduced by ~5%.
* Intern SubstitutionsFlorian Diebold2021-04-087-26/+33
| | | | (Costs a bit of performance, reduces memory usage on RA by ~10%.)
* Intern VariableKindsFlorian Diebold2021-04-081-4/+14
|
* Remove unusedFlorian Diebold2021-04-0814-69/+20
|
* Replace `make_binders` by the now equivalent `make_only_type_binders`Florian Diebold2021-04-082-35/+22
|
* Remove identity impls for ToChalkFlorian Diebold2021-04-084-215/+21
|
* Fix `Canonicalized::apply_solution`Florian Diebold2021-04-081-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 armsFlorian Diebold2021-04-084-2/+20
|
* Fix remaining `interned_mut` callFlorian Diebold2021-04-081-4/+6
|
* Replace remaining `fold` callsFlorian Diebold2021-04-083-59/+104
|
* Replace some `fold` callsFlorian Diebold2021-04-084-47/+53
|
* Fix shifted_{in,out} callsFlorian Diebold2021-04-085-11/+11
|
* Fix subst_prefixFlorian Diebold2021-04-081-1/+4
|
* Get rid of walk_mut [not compiling]Florian Diebold2021-04-081-272/+0
|
* Fix TyBuilder methodsFlorian Diebold2021-04-081-5/+5
|
* Impl Fold for CallableSigFlorian Diebold2021-04-081-0/+18
|
* Add HasInterner boundsFlorian Diebold2021-04-086-14/+35
|
* Allow unusedFlorian Diebold2021-04-081-0/+3
|
* Remove obsolete Cast implsFlorian Diebold2021-04-081-47/+0
|
* Make ToChalk implementations identityFlorian Diebold2021-04-082-272/+42
|
* Replace all the types by their Chalk versionsFlorian Diebold2021-04-083-554/+32
|
* Merge #8409bors[bot]2021-04-0714-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::internedFlorian Diebold2021-04-073-3/+3
| |
| * InEnvironment::new takes a referenceFlorian Diebold2021-04-074-5/+5
| |
| * Make Canonical::new a free-standing functionFlorian Diebold2021-04-071-10/+12
| |
| * Fix return type of `self_type_parameter`Florian Diebold2021-04-074-10/+10
| |
| * Move hir_trait_id to extension traitFlorian Diebold2021-04-0710-18/+25
| |
| * Change TraitRef::hir_fmt_ext to free-standing functionFlorian Diebold2021-04-071-20/+18
| |
* | Move `equals_ctor` to `TyExt`Florian Diebold2021-04-073-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 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
| | |