@@ -60,7 +60,7 @@ fn span_hash(source: &str, tag: &str, bad: &mut bool) -> Result<String, ()> {
6060    Ok ( format ! ( "{:x}" ,  hasher. finalize( ) ) ) 
6161} 
6262
63- fn  check_entry ( entry :  & ListEntry < ' _ > ,  bad :  & mut  bool ,  root_path :  & Path )  { 
63+ fn  check_entry ( entry :  & ListEntry < ' _ > ,  group_idx :   usize ,   bad :  & mut  bool ,  root_path :  & Path )  { 
6464    let  file = fs:: read_to_string ( root_path. join ( Path :: new ( entry. 0 ) ) ) 
6565        . unwrap_or_else ( |e| panic ! ( "{:?}, path: {}" ,  e,  entry. 0 ) ) ; 
6666    let  actual_hash = span_hash ( & file,  entry. 2 ,  bad) . unwrap ( ) ; 
@@ -77,75 +77,117 @@ fn check_entry(entry: &ListEntry<'_>, bad: &mut bool, root_path: &Path) {
7777        } 
7878        tidy_error ! ( 
7979            bad, 
80-             "hash for tag `{}` in path `{}` mismatch:\n   actual: `{}`, expected: `{}`\n " , 
80+             "hash for tag `{}` in path `{}` mismatch:\n   actual: `{}`, expected: `{}`\n   \  
81+              Verify that tags `{:?}` in sync.", 
8182            entry. 2 , 
8283            entry. 0 , 
8384            actual_hash, 
84-             entry. 1 
85+             entry. 1 , 
86+             TIDY_WATCH_LIST [ group_idx] . iter( ) . map( |e| e. 2 ) . collect:: <Vec <& str >>( ) 
8587        ) ; 
8688    } 
8789} 
8890
91+ macro_rules!  add_group { 
92+     ( $( $entry: expr) ,* )  => { 
93+         & [ $( $entry) ,* ] 
94+     } ; 
95+ } 
96+ 
8997/// (path, hash, tag) 
9098type  ListEntry < ' a >  = ( & ' a  str ,  & ' a  str ,  & ' a  str ) ; 
9199
92100/// List of tags to watch, along with paths and hashes 
93101#[ rustfmt:: skip]  
94- const  TIDY_WATCH_LIST :  & [ ListEntry < ' _ > ]  = & [ 
102+ const  TIDY_WATCH_LIST :  & [ & [ ListEntry < ' _ > ] ]  = & [ 
95103    // sync perf commit across dockerfile and opt-dist 
96-     ( "src/tools/opt-dist/src/main.rs" ,  "728c2783154a52a30bdb1d66f8ea1f2a" ,  "tidy-ticket-perf-commit" ) , 
97-     ( "src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile" ,  "76c8d9783e38e25a461355f82fcd7955" ,  "tidy-ticket-perf-commit" ) , 
98- 
99-     ( "compiler/rustc_ast/src/token.rs" ,  "70666de80ab0194a67524deeda3c01b8" ,  "tidy-ticket-ast-from_token" ) , 
100-     ( "compiler/rustc_ast/src/token.rs" ,  "9a78008a2377486eadf19d67ee4fdce2" ,  "tidy-ticket-ast-can_begin_literal_maybe_minus" ) , 
101-     ( "compiler/rustc_parse/src/parser/expr.rs" ,  "500240cdc80690209060fdce10ce065a" ,  "tidy-ticket-rustc_parse-can_begin_literal_maybe_minus" ) , 
102- 
103-     ( "compiler/rustc_builtin_macros/src/assert/context.rs" ,  "81bd6f37797c22fce5c85a4b590b3856" ,  "tidy-ticket-all-expr-kinds" ) , 
104-     ( "tests/ui/macros/rfc-2011-nicer-assert-messages/all-expr-kinds.rs" ,  "78ce54cc25baeac3ae07c876db25180c" ,  "tidy-ticket-all-expr-kinds" ) , 
105- 
106-     ( "compiler/rustc_const_eval/src/interpret/validity.rs" ,  "91c69e391741f64b7624e1bda4b31bc3" ,  "tidy-ticket-try_visit_primitive" ) , 
107-     ( "compiler/rustc_const_eval/src/interpret/validity.rs" ,  "05e496c9ca019273c49ba9de48b5da23" ,  "tidy-ticket-visit_value" ) , 
104+     add_group ! ( 
105+         ( "src/tools/opt-dist/src/main.rs" ,  "728c2783154a52a30bdb1d66f8ea1f2a" ,  "tidy-ticket-perf-commit" ) , 
106+         ( "src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile" ,  "76c8d9783e38e25a461355f82fcd7955" ,  "tidy-ticket-perf-commit" ) 
107+     ) , 
108+ 
109+     add_group ! ( 
110+         ( "compiler/rustc_ast/src/token.rs" ,  "70666de80ab0194a67524deeda3c01b8" ,  "tidy-ticket-ast-from_token" ) , 
111+         ( "compiler/rustc_ast/src/token.rs" ,  "9a78008a2377486eadf19d67ee4fdce2" ,  "tidy-ticket-ast-can_begin_literal_maybe_minus" ) , 
112+         ( "compiler/rustc_parse/src/parser/expr.rs" ,  "500240cdc80690209060fdce10ce065a" ,  "tidy-ticket-rustc_parse-can_begin_literal_maybe_minus" ) 
113+     ) , 
114+ 
115+     add_group ! ( 
116+         ( "compiler/rustc_builtin_macros/src/assert/context.rs" ,  "81bd6f37797c22fce5c85a4b590b3856" ,  "tidy-ticket-all-expr-kinds" ) , 
117+         ( "tests/ui/macros/rfc-2011-nicer-assert-messages/all-expr-kinds.rs" ,  "78ce54cc25baeac3ae07c876db25180c" ,  "tidy-ticket-all-expr-kinds" ) 
118+     ) , 
119+ 
120+     add_group ! ( 
121+         ( "compiler/rustc_const_eval/src/interpret/validity.rs" ,  "91c69e391741f64b7624e1bda4b31bc3" ,  "tidy-ticket-try_visit_primitive" ) , 
122+         ( "compiler/rustc_const_eval/src/interpret/validity.rs" ,  "05e496c9ca019273c49ba9de48b5da23" ,  "tidy-ticket-visit_value" ) 
123+     ) , 
108124
109125    // sync self-profile-events help mesage with actual list of events 
110-     ( "compiler/rustc_data_structures/src/profiling.rs" ,  "881e7899c7d6904af1bc000594ee0418" ,  "tidy-ticket-self-profile-events" ) , 
111-     ( "compiler/rustc_session/src/options.rs" ,  "012ee5a3b61ee1377744e5c6913fa00a" ,  "tidy-ticket-self-profile-events" ) , 
112- 
113-     ( "compiler/rustc_errors/src/json.rs" ,  "5907da5c0476785fe2aae4d0d62f7171" ,  "tidy-ticket-UnusedExterns" ) , 
114-     ( "src/librustdoc/doctest.rs" ,  "b5bb5128abb4a2dbb47bb1a1a083ba9b" ,  "tidy-ticket-UnusedExterns" ) , 
115- 
116-     ( "compiler/rustc_middle/src/ty/util.rs" ,  "cae64b1bc854e7ee81894212facb5bfa" ,  "tidy-ticket-static_ptr_ty" ) , 
117-     ( "compiler/rustc_middle/src/ty/util.rs" ,  "6f5ead08474b4d3e358db5d3c7aef970" ,  "tidy-ticket-thread_local_ptr_ty" ) , 
118- 
119-     ( "compiler/rustc_mir_build/src/thir/pattern/deconstruct_pat.rs" ,  "8ac64f1266a60bb7b11d80ac764e5154" ,  "tidy-ticket-arity" ) , 
120-     ( "compiler/rustc_mir_build/src/thir/pattern/deconstruct_pat.rs" ,  "2bab79a2441e8ffae79b7dc3befe91cf" ,  "tidy-ticket-wildcards" ) , 
121- 
122-     ( "compiler/rustc_mir_build/src/thir/pattern/deconstruct_pat.rs" ,  "3844ca4b7b45be1c721c17808ee5b2e2" ,  "tidy-ticket-is_covered_by" ) , 
123-     ( "compiler/rustc_mir_build/src/thir/pattern/deconstruct_pat.rs" ,  "4d296b7b1f48a9dd92e8bb8cd3344718" ,  "tidy-ticket-is_covered_by_any" ) , 
124- 
125-     ( "compiler/rustc_monomorphize/src/partitioning.rs" ,  "f4f33e9c14f4e0c3a20b5240ae36a7c8" ,  "tidy-ticket-short_description" ) , 
126-     ( "compiler/rustc_codegen_ssa/src/back/write.rs" ,  "5286f7f76fcf564c98d7a8eaeec39b18" ,  "tidy-ticket-short_description" ) , 
127- 
128-     ( "compiler/rustc_session/src/config/sigpipe.rs" ,  "8d765a5c613d931852c0f59ed1997dcd" ,  "tidy-ticket-sigpipe" ) , 
129-     ( "library/std/src/sys/unix/mod.rs" ,  "2cdc37081831cdcf44f3331efbe440af" ,  "tidy-ticket-sigpipe" ) , 
130- 
131-     ( "compiler/rustc_trait_selection/src/solve/assembly/structural_traits.rs" ,  "b205939890472130649d5fd4fc86a992" ,  "tidy-ticket-extract_tupled_inputs_and_output_from_callable" ) , 
132-     ( "compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs" ,  "e9a77bba86a02702af65b2713af47394" ,  "tidy-ticket-assemble_fn_pointer_candidates" ) , 
133- 
134-     ( "compiler/rustc_trait_selection/src/solve/eval_ctxt/select.rs" ,  "d0c807d90501f3f63dffc3e7ec046c20" ,  "tidy-ticket-rematch_unsize" ) , 
135-     ( "compiler/rustc_trait_selection/src/solve/trait_goals.rs" ,  "f1b0ce28128b5d5a5b545af3f3cf55f4" ,  "tidy-ticket-consider_builtin_unsize_candidate" ) , 
136- 
137-     ( "compiler/rustc_trait_selection/src/traits/project.rs" ,  "66585f93352fe56a5be6cc5a63bcc756" ,  "tidy-ticket-assemble_candidates_from_impls-UserDefined" ) , 
138-     ( "compiler/rustc_ty_utils/src/instance.rs" ,  "e8b404fd4160512708f922140a8bb187" ,  "tidy-ticket-resolve_associated_item-UserDefined" ) , 
139- 
140-     ( "compiler/rustc_hir_analysis/src/lib.rs" ,  "842e23fb65caf3a96681686131093316" ,  "tidy-ticket-sess-time-item_types_checking" ) , 
141-     ( "src/librustdoc/core.rs" ,  "d11d64105aa952bbf3c0c2f211135c43" ,  "tidy-ticket-sess-time-item_types_checking" ) , 
142- 
143-     ( "library/core/src/ptr/metadata.rs" ,  "57fc0e05c177c042c9766cc1134ae240" ,  "tidy-ticket-static_assert_expected_bounds_for_metadata" ) , 
144-     ( "library/core/tests/ptr.rs" ,  "13ecb32e2a0db0998ff94f33a30f5cfd" ,  "tidy-ticket-static_assert_expected_bounds_for_metadata" ) , 
126+     add_group ! ( 
127+         ( "compiler/rustc_data_structures/src/profiling.rs" ,  "881e7899c7d6904af1bc000594ee0418" ,  "tidy-ticket-self-profile-events" ) , 
128+         ( "compiler/rustc_session/src/options.rs" ,  "012ee5a3b61ee1377744e5c6913fa00a" ,  "tidy-ticket-self-profile-events" ) 
129+     ) , 
130+ 
131+     add_group ! ( 
132+         ( "compiler/rustc_errors/src/json.rs" ,  "5907da5c0476785fe2aae4d0d62f7171" ,  "tidy-ticket-UnusedExterns" ) , 
133+         ( "src/librustdoc/doctest.rs" ,  "b5bb5128abb4a2dbb47bb1a1a083ba9b" ,  "tidy-ticket-UnusedExterns" ) 
134+     ) , 
135+ 
136+     add_group ! ( 
137+         ( "compiler/rustc_middle/src/ty/util.rs" ,  "cae64b1bc854e7ee81894212facb5bfa" ,  "tidy-ticket-static_ptr_ty" ) , 
138+         ( "compiler/rustc_middle/src/ty/util.rs" ,  "6f5ead08474b4d3e358db5d3c7aef970" ,  "tidy-ticket-thread_local_ptr_ty" ) 
139+     ) , 
140+ 
141+     add_group ! ( 
142+         ( "compiler/rustc_mir_build/src/thir/pattern/deconstruct_pat.rs" ,  "8ac64f1266a60bb7b11d80ac764e5154" ,  "tidy-ticket-arity" ) , 
143+         ( "compiler/rustc_mir_build/src/thir/pattern/deconstruct_pat.rs" ,  "2bab79a2441e8ffae79b7dc3befe91cf" ,  "tidy-ticket-wildcards" ) 
144+     ) , 
145+ 
146+     add_group ! ( 
147+         ( "compiler/rustc_mir_build/src/thir/pattern/deconstruct_pat.rs" ,  "3844ca4b7b45be1c721c17808ee5b2e2" ,  "tidy-ticket-is_covered_by" ) , 
148+         ( "compiler/rustc_mir_build/src/thir/pattern/deconstruct_pat.rs" ,  "4d296b7b1f48a9dd92e8bb8cd3344718" ,  "tidy-ticket-is_covered_by_any" ) 
149+     ) , 
150+ 
151+     add_group ! ( 
152+         ( "compiler/rustc_monomorphize/src/partitioning.rs" ,  "f4f33e9c14f4e0c3a20b5240ae36a7c8" ,  "tidy-ticket-short_description" ) , 
153+         ( "compiler/rustc_codegen_ssa/src/back/write.rs" ,  "5286f7f76fcf564c98d7a8eaeec39b18" ,  "tidy-ticket-short_description" ) 
154+     ) , 
155+ 
156+     add_group ! ( 
157+         ( "compiler/rustc_session/src/config/sigpipe.rs" ,  "8d765a5c613d931852c0f59ed1997dcd" ,  "tidy-ticket-sigpipe" ) , 
158+         ( "library/std/src/sys/unix/mod.rs" ,  "2cdc37081831cdcf44f3331efbe440af" ,  "tidy-ticket-sigpipe" ) 
159+     ) , 
160+ 
161+     add_group ! ( 
162+         ( "compiler/rustc_trait_selection/src/solve/assembly/structural_traits.rs" ,  "b205939890472130649d5fd4fc86a992" ,  "tidy-ticket-extract_tupled_inputs_and_output_from_callable" ) , 
163+         ( "compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs" ,  "e9a77bba86a02702af65b2713af47394" ,  "tidy-ticket-assemble_fn_pointer_candidates" ) 
164+     ) , 
165+ 
166+     add_group ! ( 
167+         ( "compiler/rustc_trait_selection/src/solve/eval_ctxt/select.rs" ,  "d0c807d90501f3f63dffc3e7ec046c20" ,  "tidy-ticket-rematch_unsize" ) , 
168+         ( "compiler/rustc_trait_selection/src/solve/trait_goals.rs" ,  "f1b0ce28128b5d5a5b545af3f3cf55f4" ,  "tidy-ticket-consider_builtin_unsize_candidate" ) 
169+     ) , 
170+ 
171+     add_group ! ( 
172+         ( "compiler/rustc_trait_selection/src/traits/project.rs" ,  "66585f93352fe56a5be6cc5a63bcc756" ,  "tidy-ticket-assemble_candidates_from_impls-UserDefined" ) , 
173+         ( "compiler/rustc_ty_utils/src/instance.rs" ,  "e8b404fd4160512708f922140a8bb187" ,  "tidy-ticket-resolve_associated_item-UserDefined" ) 
174+     ) , 
175+ 
176+     add_group ! ( 
177+         ( "compiler/rustc_hir_analysis/src/lib.rs" ,  "842e23fb65caf3a96681686131093316" ,  "tidy-ticket-sess-time-item_types_checking" ) , 
178+         ( "src/librustdoc/core.rs" ,  "d11d64105aa952bbf3c0c2f211135c43" ,  "tidy-ticket-sess-time-item_types_checking" ) 
179+     ) , 
180+ 
181+     add_group ! ( 
182+         ( "library/core/src/ptr/metadata.rs" ,  "57fc0e05c177c042c9766cc1134ae240" ,  "tidy-ticket-static_assert_expected_bounds_for_metadata" ) , 
183+         ( "library/core/tests/ptr.rs" ,  "13ecb32e2a0db0998ff94f33a30f5cfd" ,  "tidy-ticket-static_assert_expected_bounds_for_metadata" ) 
184+     ) , 
145185] ; 
146186
147187pub  fn  check ( root_path :  & Path ,  bad :  & mut  bool )  { 
148-     for  entry in  TIDY_WATCH_LIST  { 
149-         check_entry ( entry,  bad,  root_path) ; 
188+     for  ( group_idx,  group)  in  TIDY_WATCH_LIST . iter ( ) . enumerate ( )  { 
189+         for  entry in  group. iter ( )  { 
190+             check_entry ( entry,  group_idx,  bad,  root_path) ; 
191+         } 
150192    } 
151193} 
0 commit comments