Florian Diebold
a169fa6a83
Intern VariableKinds
2021-04-08 22:48:47 +02:00
Florian Diebold
d992736e79
Remove unused
2021-04-08 14:36:14 +02:00
Florian Diebold
8040f4a5e3
Replace make_binders
by the now equivalent make_only_type_binders
2021-04-08 14:23:17 +02:00
Florian Diebold
8ce6fea325
Remove identity impls for ToChalk
2021-04-08 14:23:17 +02:00
Florian Diebold
a163554857
Fix Canonicalized::apply_solution
...
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.
2021-04-08 14:23:17 +02:00
Florian Diebold
a838a60caa
Fix missing match arms
2021-04-08 14:23:17 +02:00
Florian Diebold
f43edb2151
Fix remaining interned_mut
call
2021-04-08 14:08:55 +02:00
Florian Diebold
0f058d61ce
Replace remaining fold
calls
2021-04-08 14:08:55 +02:00
Florian Diebold
caee3b6c2d
Replace some fold
calls
2021-04-08 14:08:55 +02:00
Florian Diebold
b25b147e86
Fix shifted_{in,out} calls
2021-04-08 14:08:55 +02:00
Florian Diebold
dc0b581736
Fix subst_prefix
2021-04-08 14:08:55 +02:00
Florian Diebold
5794a090bf
Get rid of walk_mut [not compiling]
2021-04-08 14:08:55 +02:00
Florian Diebold
1332e72d09
Fix TyBuilder methods
2021-04-08 14:08:55 +02:00
Florian Diebold
b24e6f6030
Impl Fold for CallableSig
2021-04-08 14:08:55 +02:00
Florian Diebold
7e541e69b1
Add HasInterner bounds
2021-04-08 14:08:55 +02:00
Florian Diebold
926bfef0ef
Allow unused
2021-04-08 14:08:55 +02:00
Florian Diebold
e5d294765a
Remove obsolete Cast impls
2021-04-08 14:08:54 +02:00
Florian Diebold
429bbbd39a
Make ToChalk implementations identity
2021-04-08 14:08:54 +02:00
Florian Diebold
77d974ae6b
Replace all the types by their Chalk versions
2021-04-08 14:08:54 +02:00
bors[bot]
3191a93185
Merge #8409
...
8409: Various remaining fixes for Chalk IR move r=flodiebold a=flodiebold
CC #8313
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2021-04-07 18:51:36 +00:00
Florian Diebold
dc116f7ce2
Fix return type of Substitution::interned
2021-04-07 20:50:26 +02:00
Florian Diebold
be0084a0bc
InEnvironment::new takes a reference
2021-04-07 20:48:58 +02:00
Florian Diebold
d1b645d236
Make Canonical::new a free-standing function
2021-04-07 20:47:04 +02:00
Florian Diebold
9b4ecd3723
Fix return type of self_type_parameter
2021-04-07 20:41:52 +02:00
Florian Diebold
6777a4975d
Move hir_trait_id to extension trait
2021-04-07 20:40:01 +02:00
Florian Diebold
86feac18e8
Change TraitRef::hir_fmt_ext to free-standing function
2021-04-07 20:34:58 +02:00
Florian Diebold
4c35df47e8
Move equals_ctor
to TyExt
...
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).
2021-04-07 20:08:50 +02:00
Florian Diebold
92dcc53f94
Remove Ty::substs{_mut}
...
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.
2021-04-07 17:56:53 +02:00
Lukas Wirth
c3c8e8225f
Free Ty::def_crates
2021-04-07 13:09:31 +02:00
Lukas Wirth
e3a5c15d18
Move Ty::builtin_deref
2021-04-07 13:06:48 +02:00
bors[bot]
a8f1e41f0f
Merge #8394
...
8394: Infer variants through type aliased enums r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-04-07 09:35:40 +00:00
Lukas Wirth
41563fd612
Infer variants through type aliased enums
2021-04-07 11:31:50 +02:00
Jonas Schievink
7c1c0e6fea
Collect trait impls inside unnamed consts
2021-04-07 03:33:22 +02:00
Florian Diebold
b03969cda9
Remove SolutionVariables
, add ConstrainedSubst analogous to Chalk
...
... just missing the constraints.
2021-04-06 23:46:32 +02:00
Florian Diebold
768ee3e47a
Align InferenceVar
to Chalk
2021-04-06 21:10:22 +02:00
Florian Diebold
d280538174
Clean up Chalk mapping a bit
2021-04-06 21:10:22 +02:00
Jonas Schievink
230c763648
infer: remove record_pat_field_resolutions
field
...
Same as https://github.com/rust-analyzer/rust-analyzer/pull/8376 , this
can be computed from other data
2021-04-06 19:44:28 +02:00
bors[bot]
e6a1c9ca60
Merge #8371
...
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 <lukastw97@gmail.com>
2021-04-06 16:12:30 +00:00
Jonas Schievink
e9752308bb
infer: remove record_field_resolutions
field
...
It stores no useful data, since we can derive all fields from
`variant_resolutions`
2021-04-06 17:59:18 +02:00
bors[bot]
7d39b13996
Merge #8364
...
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 <alexnmaco@gmail.com>
2021-04-06 13:43:37 +00:00
Alexandru Macovei
32304d14a1
Use Box'es to reduce the size of hir_def::expr::Pat from 112 to 64 bytes on 64bit
2021-04-06 16:01:31 +03:00
Alexandru Macovei
fb1f544e24
Use Box'es to reduce size of hir_def::expr::Expr from 128 to 72 bytes (on 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.
2021-04-06 16:01:31 +03:00
Lukas Wirth
a43409fa43
Panic when creating a HirDisplayWrapper with DisplayTarget::SourceCode
2021-04-06 14:42:34 +02:00
Lukas Wirth
ffdb2da49d
Don't use HirDisplayWrapper when displaying SourceCode
2021-04-06 14:21:35 +02:00
Lukas Wirth
bc993bbe85
Remove TyExt::dyn_trait_ref
2021-04-06 13:58:51 +02:00
Lukas Wirth
9b4699a9be
Move Ty accessors to TyExt
2021-04-06 13:58:48 +02:00
Lukas Wirth
9fbba7bc45
Add chalk_ir::Const to TyKind::Array
2021-04-06 11:45:41 +02:00
Lukas Wirth
08dc69599e
Use a constructor function for Static lifetimes
2021-04-06 10:50:55 +02:00
Lukas Wirth
b98c681cb7
Always use Static lifetimes in chalk mapping
2021-04-06 10:45:34 +02:00
Lukas Wirth
9da191c7e0
Add Lifetime to DynTy
2021-04-06 10:45:34 +02:00