mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 05:45:12 +00:00
Intern Substitutions
(Costs a bit of performance, reduces memory usage on RA by ~10%.)
This commit is contained in:
parent
a169fa6a83
commit
be03db0e3a
8 changed files with 34 additions and 27 deletions
|
@ -462,7 +462,7 @@ impl<'a> InferenceContext<'a> {
|
|||
};
|
||||
match canonicalized.decanonicalize_ty(derefed_ty.value).kind(&Interner) {
|
||||
TyKind::Tuple(_, substs) => name.as_tuple_index().and_then(|idx| {
|
||||
substs.interned().get(idx).map(|a| a.assert_ty_ref(&Interner)).cloned()
|
||||
substs.as_slice(&Interner).get(idx).map(|a| a.assert_ty_ref(&Interner)).cloned()
|
||||
}),
|
||||
TyKind::Adt(AdtId(hir_def::AdtId::StructId(s)), parameters) => {
|
||||
let local_id = self.db.struct_data(*s).variant_data.field(name)?;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue