rust/compiler
bors d63a8d965e Auto merge of #92278 - Aaron1011:fix-fingerprint-caching, r=michaelwoerister
Ensure that `Fingerprint` caching respects hashing configuration

Fixes #92266

In some `HashStable` impls, we use a cache to avoid re-computing
the same `Fingerprint` from the same structure (e.g. an `AdtDef`).
However, the `StableHashingContext` used can be configured to
perform hashing in different ways (e.g. skipping `Span`s). This
configuration information is not included in the cache key,
which will cause an incorrect `Fingerprint` to be used if
we hash the same structure with different `StableHashingContext`
settings.

To fix this, the configuration settings of `StableHashingContext`
are split out into a separate `HashingControls` struct. This
struct is used as part of the cache key, ensuring that our caches
always produce the correct result for the given settings.

With this in place, we now turn off `Span` hashing during the
entire process of computing the hash included in legacy symbols.
This current has no effect, but will matter when a future PR
starts hashing more `Span`s that we currently skip.
2022-01-10 00:26:07 +00:00
..
rustc Remove useless #[global_allocator] from rustc and rustdoc. 2021-12-23 17:23:21 +11:00
rustc_apfloat Stabilize iter::zip. 2021-12-14 18:50:31 -04:00
rustc_arena Add some comments. 2021-11-19 07:52:59 +11:00
rustc_ast expand: Refactor InvocationCollector visitor for better code reuse 2022-01-07 14:41:22 +08:00
rustc_ast_lowering Rollup merge of #91907 - lcnr:const-arg-infer, r=BoxyUwU 2022-01-04 21:23:06 +01:00
rustc_ast_passes Move PatKind::Lit checking from ast_validation to ast lowering 2022-01-01 15:10:43 -05:00
rustc_ast_pretty Rollup merge of #92336 - dtolnay:printstateself, r=michaelwoerister 2022-01-07 20:20:56 -08:00
rustc_attr Remove unnecessary sigils around Symbol::as_str() calls. 2021-12-15 17:32:14 +11:00
rustc_borrowck Rollup merge of #90102 - nbdd0121:box3, r=jonas-schievink 2022-01-03 14:44:15 +01:00
rustc_builtin_macros Auto merge of #92066 - Smittyvb:concat_bytes-repeat, r=nagisa 2022-01-02 12:38:41 +00:00
rustc_codegen_cranelift Rollup merge of #90102 - nbdd0121:box3, r=jonas-schievink 2022-01-03 14:44:15 +01:00
rustc_codegen_gcc Update references to -Z symbol-mangling-version to use -C 2022-01-01 15:53:11 -08:00
rustc_codegen_llvm Rollup merge of #92375 - wesleywiser:consolidate_debuginfo_msvc_check, r=michaelwoerister 2022-01-07 20:20:58 -08:00
rustc_codegen_ssa Rollup merge of #92375 - wesleywiser:consolidate_debuginfo_msvc_check, r=michaelwoerister 2022-01-07 20:20:58 -08:00
rustc_const_eval rename StackPopClean::None to Root 2022-01-04 11:13:08 +01:00
rustc_data_structures Ensure that Fingerprint caching respects hashing configuration 2022-01-05 10:13:28 -05:00
rustc_driver Rollup merge of #92504 - dtolnay:wall, r=jackh726 2022-01-06 23:15:17 +01:00
rustc_error_codes docs(error-codes): Add long error explanation for E0227 2021-12-28 15:46:20 +03:00
rustc_errors Stabilize iter::zip. 2021-12-14 18:50:31 -04:00
rustc_expand expand: Import more AST enums 2022-01-07 14:54:16 +08:00
rustc_feature Stabilize destructuring_assignment 2021-12-14 22:38:51 -05:00
rustc_fs_util Migrate to 2021 2021-09-20 22:21:42 -04:00
rustc_graphviz fix clippy::single_char_pattern perf findings 2021-12-14 12:40:28 +01:00
rustc_hir Auto merge of #92534 - Aaron1011:hash-hir, r=petrochenkov 2022-01-09 16:03:41 +00:00
rustc_hir_pretty Rollup merge of #91907 - lcnr:const-arg-infer, r=BoxyUwU 2022-01-04 21:23:06 +01:00
rustc_incremental Add #[rustc_clean(loaded_from_disk)] to assert loading of query result 2021-12-21 16:34:12 -05:00
rustc_index Introduce IntervalSet 2021-12-30 22:33:44 -05:00
rustc_infer Suggest changing quotes when str/char type mismatch 2022-01-03 22:08:08 -08:00
rustc_interface ast: Always keep a NodeId in ast::Crate 2022-01-05 17:09:37 +08:00
rustc_lexer Auto merge of #91393 - Julian-Wollersberger:lexer_optimization, r=petrochenkov 2021-12-03 13:20:14 +00:00
rustc_lint Rollup merge of #91770 - TaKO8Ki:suggest-adding-cfg-test, r=joshtriplett 2021-12-21 08:33:39 +01:00
rustc_lint_defs Rollup merge of #91770 - TaKO8Ki:suggest-adding-cfg-test, r=joshtriplett 2021-12-21 08:33:39 +01:00
rustc_llvm Rollup merge of #92559 - durin42:llvm-14-attributemask, r=nikic 2022-01-06 23:15:18 +01:00
rustc_log Make rustc_log doc test runnable 2022-01-03 22:31:56 -08:00
rustc_macros Rollup merge of #92011 - Aaron1011:decode-span, r=michaelwoerister 2022-01-03 14:44:16 +01:00
rustc_metadata Auto merge of #92690 - matthiaskrgr:rollup-rw0oz05, r=matthiaskrgr 2022-01-09 12:43:37 +00:00
rustc_middle Auto merge of #92278 - Aaron1011:fix-fingerprint-caching, r=michaelwoerister 2022-01-10 00:26:07 +00:00
rustc_mir_build Rollup merge of #91907 - lcnr:const-arg-infer, r=BoxyUwU 2022-01-04 21:23:06 +01:00
rustc_mir_dataflow Rollup merge of #90102 - nbdd0121:box3, r=jonas-schievink 2022-01-03 14:44:15 +01:00
rustc_mir_transform Rollup merge of #92207 - tmiasko:delay-drop-elaboration-bug, r=jackh726 2022-01-06 23:15:14 +01:00
rustc_monomorphize Add query to avoid name comparison in leaf_def 2022-01-07 13:31:36 -08:00
rustc_parse ast: Always keep a NodeId in ast::Crate 2022-01-05 17:09:37 +08:00
rustc_parse_format Migrate to 2021 2021-09-20 22:21:42 -04:00
rustc_passes Add query to avoid name comparison in leaf_def 2022-01-07 13:31:36 -08:00
rustc_plugin_impl replace dynamic library module with libloading 2021-12-06 12:03:47 -05:00
rustc_privacy rustc_middle: Rename Export to ModChild and add some comments 2022-01-09 09:22:07 +08:00
rustc_query_impl Some cleanup 2021-12-23 13:38:53 -05:00
rustc_query_system Auto merge of #92278 - Aaron1011:fix-fingerprint-caching, r=michaelwoerister 2022-01-10 00:26:07 +00:00
rustc_resolve Auto merge of #92690 - matthiaskrgr:rollup-rw0oz05, r=matthiaskrgr 2022-01-09 12:43:37 +00:00
rustc_save_analysis Add trait_item_def_id to AssocItem 2022-01-07 12:28:12 -08:00
rustc_serialize Do not use LEB128 for encoding u16 and i16 2021-12-28 09:29:08 +01:00
rustc_session sess/cg: re-introduce split dwarf kind 2022-01-06 09:32:42 +00:00
rustc_span Auto merge of #92278 - Aaron1011:fix-fingerprint-caching, r=michaelwoerister 2022-01-10 00:26:07 +00:00
rustc_symbol_mangling Ensure that Fingerprint caching respects hashing configuration 2022-01-05 10:13:28 -05:00
rustc_target sess/cg: re-introduce split dwarf kind 2022-01-06 09:32:42 +00:00
rustc_trait_selection Add query to avoid name comparison in leaf_def 2022-01-07 13:31:36 -08:00
rustc_traits Add trait_item_def_id to AssocItem 2022-01-07 12:28:12 -08:00
rustc_ty_utils Add query to avoid name comparison in leaf_def 2022-01-07 13:31:36 -08:00
rustc_type_ir Fix HashStable implementation on InferTy 2021-12-13 20:36:17 -08:00
rustc_typeck rustc_metadata: Rename item_children(_untracked) to module_children(_untracked) 2022-01-09 09:22:06 +08:00