Add Body::shrink_to_fit

This commit is contained in:
Jonas Schievink
2021-04-04 03:26:16 +02:00
parent 4c8ee9a531
commit 1da6d0bed9
+11 -1
View File
@@ -302,7 +302,8 @@ pub(crate) fn body_with_source_map_query(
}
};
let expander = Expander::new(db, file_id, module);
let (body, source_map) = Body::new(db, expander, params, body);
let (mut body, source_map) = Body::new(db, expander, params, body);
body.shrink_to_fit();
(Arc::new(body), Arc::new(source_map))
}
@@ -328,6 +329,15 @@ fn new(
) -> (Body, BodySourceMap) {
lower::lower(db, expander, params, body)
}
fn shrink_to_fit(&mut self) {
let Self { _c: _, body_expr: _, block_scopes, exprs, labels, params, pats } = self;
block_scopes.shrink_to_fit();
exprs.shrink_to_fit();
labels.shrink_to_fit();
params.shrink_to_fit();
pats.shrink_to_fit();
}
}
impl Index<ExprId> for Body {