Skip to content

Commit c0388cd

Browse files
committed
Rewrite lint passes with less visitor cruft
This purges about 500 lines of visitor cruft from lint passes. All lints are handled in a much more sane way at this point. The other huge bonus of this commit is that there are no more @-boxes in the lint passes, fixing the 500MB memory regression seen when the lint passes were refactored. Closes #8589
1 parent ccd9a96 commit c0388cd

File tree

3 files changed

+423
-926
lines changed

3 files changed

+423
-926
lines changed

src/librustc/middle/astencode.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -880,13 +880,13 @@ fn encode_side_tables_for_ii(ecx: &e::EncodeContext,
880880
// Because the ast visitor uses @IdVisitingOperation, I can't pass in
881881
// ecx directly, but /I/ know that it'll be fine since the lifetime is
882882
// tied to the CrateContext that lives throughout this entire section.
883-
ast_util::visit_ids_for_inlined_item(ii, @SideTableEncodingIdVisitor {
883+
ast_util::visit_ids_for_inlined_item(ii, &SideTableEncodingIdVisitor {
884884
ecx_ptr: unsafe {
885885
cast::transmute(ecx)
886886
},
887887
new_ebml_w: new_ebml_w,
888888
maps: maps,
889-
} as @ast_util::IdVisitingOperation);
889+
});
890890
ebml_w.end_tag();
891891
}
892892

0 commit comments

Comments
 (0)