aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_def/src
diff options
context:
space:
mode:
Diffstat (limited to 'crates/hir_def/src')
-rw-r--r--crates/hir_def/src/item_scope.rs27
-rw-r--r--crates/hir_def/src/nameres.rs24
2 files changed, 38 insertions, 13 deletions
diff --git a/crates/hir_def/src/item_scope.rs b/crates/hir_def/src/item_scope.rs
index 4ddfd9ee6..a8ee5eeac 100644
--- a/crates/hir_def/src/item_scope.rs
+++ b/crates/hir_def/src/item_scope.rs
@@ -287,14 +287,25 @@ impl ItemScope {
287 } 287 }
288 288
289 pub(crate) fn shrink_to_fit(&mut self) { 289 pub(crate) fn shrink_to_fit(&mut self) {
290 self.types.shrink_to_fit(); 290 // Exhaustive match to require handling new fields.
291 self.values.shrink_to_fit(); 291 let Self {
292 self.macros.shrink_to_fit(); 292 types,
293 self.unresolved.shrink_to_fit(); 293 values,
294 self.defs.shrink_to_fit(); 294 macros,
295 self.impls.shrink_to_fit(); 295 unresolved,
296 self.unnamed_trait_imports.shrink_to_fit(); 296 defs,
297 self.legacy_macros.shrink_to_fit(); 297 impls,
298 unnamed_trait_imports,
299 legacy_macros,
300 } = self;
301 types.shrink_to_fit();
302 values.shrink_to_fit();
303 macros.shrink_to_fit();
304 unresolved.shrink_to_fit();
305 defs.shrink_to_fit();
306 impls.shrink_to_fit();
307 unnamed_trait_imports.shrink_to_fit();
308 legacy_macros.shrink_to_fit();
298 } 309 }
299} 310}
300 311
diff --git a/crates/hir_def/src/nameres.rs b/crates/hir_def/src/nameres.rs
index 6a09ad420..7dd68219f 100644
--- a/crates/hir_def/src/nameres.rs
+++ b/crates/hir_def/src/nameres.rs
@@ -411,11 +411,25 @@ impl DefMap {
411 } 411 }
412 412
413 fn shrink_to_fit(&mut self) { 413 fn shrink_to_fit(&mut self) {
414 self.extern_prelude.shrink_to_fit(); 414 // Exhaustive match to require handling new fields.
415 self.exported_proc_macros.shrink_to_fit(); 415 let Self {
416 self.diagnostics.shrink_to_fit(); 416 _c: _,
417 self.modules.shrink_to_fit(); 417 exported_proc_macros,
418 for (_, module) in self.modules.iter_mut() { 418 extern_prelude,
419 diagnostics,
420 modules,
421 block: _,
422 edition: _,
423 krate: _,
424 prelude: _,
425 root: _,
426 } = self;
427
428 extern_prelude.shrink_to_fit();
429 exported_proc_macros.shrink_to_fit();
430 diagnostics.shrink_to_fit();
431 modules.shrink_to_fit();
432 for (_, module) in modules.iter_mut() {
419 module.children.shrink_to_fit(); 433 module.children.shrink_to_fit();
420 module.scope.shrink_to_fit(); 434 module.scope.shrink_to_fit();
421 } 435 }