Skip to content

Commit

Permalink
Stop relying on hashmap iteration for unused macro rules arms
Browse files Browse the repository at this point in the history
  • Loading branch information
Noratrieb committed Oct 17, 2024
1 parent 184cfb9 commit 0d04adf
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 23 deletions.
4 changes: 3 additions & 1 deletion compiler/rustc_passes/src/hir_stats.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,9 @@ impl<'k> StatCollector<'k> {
// We will soon sort, so the initial order does not matter.
#[allow(rustc::potential_query_instability)]
let mut nodes: Vec<_> = self.nodes.iter().collect();
nodes.sort_by_key(|(_, node)| node.stats.count * node.stats.size);
nodes.sort_by_cached_key(|(label, node)| {
(node.stats.count * node.stats.size, label.to_owned())
});

let total_size = nodes.iter().map(|(_, node)| node.stats.count * node.stats.size).sum();

Expand Down
12 changes: 6 additions & 6 deletions tests/ui/lint/unused/unused-macro-rules-compile-error.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ note: the lint level is defined here
LL | #![deny(unused_macro_rules)]
| ^^^^^^^^^^^^^^^^^^

error: rule #3 of macro `num2` is never used
--> $DIR/unused-macro-rules-compile-error.rs:22:5
|
LL | (two_) => { compile_error! };
| ^^^^^^

error: rule #2 of macro `num2` is never used
--> $DIR/unused-macro-rules-compile-error.rs:20:5
|
LL | (two) => { fn compile_error() {} };
| ^^^^^

error: rule #3 of macro `num2` is never used
--> $DIR/unused-macro-rules-compile-error.rs:22:5
|
LL | (two_) => { compile_error! };
| ^^^^^^

error: aborting due to 3 previous errors

16 changes: 8 additions & 8 deletions tests/ui/lint/unused/unused-macro-rules-decl.stderr
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
error: rule #4 of macro `num` is never used
--> $DIR/unused-macro-rules-decl.rs:11:5
error: rule #2 of macro `num` is never used
--> $DIR/unused-macro-rules-decl.rs:9:5
|
LL | (four) => { 4 },
| ^^^^^^
LL | (two) => { 2 },
| ^^^^^
|
note: the lint level is defined here
--> $DIR/unused-macro-rules-decl.rs:2:9
|
LL | #![deny(unused_macro_rules)]
| ^^^^^^^^^^^^^^^^^^

error: rule #2 of macro `num` is never used
--> $DIR/unused-macro-rules-decl.rs:9:5
error: rule #4 of macro `num` is never used
--> $DIR/unused-macro-rules-decl.rs:11:5
|
LL | (two) => { 2 },
| ^^^^^
LL | (four) => { 4 },
| ^^^^^^

error: rule #3 of macro `num_rec` is never used
--> $DIR/unused-macro-rules-decl.rs:31:5
Expand Down
16 changes: 8 additions & 8 deletions tests/ui/lint/unused/unused-macro-rules.stderr
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
error: rule #4 of macro `num` is never used
--> $DIR/unused-macro-rules.rs:10:5
error: rule #2 of macro `num` is never used
--> $DIR/unused-macro-rules.rs:8:5
|
LL | (four) => { 4 };
| ^^^^^^
LL | (two) => { 2 };
| ^^^^^
|
note: the lint level is defined here
--> $DIR/unused-macro-rules.rs:1:9
|
LL | #![deny(unused_macro_rules)]
| ^^^^^^^^^^^^^^^^^^

error: rule #2 of macro `num` is never used
--> $DIR/unused-macro-rules.rs:8:5
error: rule #4 of macro `num` is never used
--> $DIR/unused-macro-rules.rs:10:5
|
LL | (two) => { 2 };
| ^^^^^
LL | (four) => { 4 };
| ^^^^^^

error: rule #3 of macro `num_rec` is never used
--> $DIR/unused-macro-rules.rs:30:5
Expand Down

0 comments on commit 0d04adf

Please sign in to comment.