rust/compiler
Matthias Krüger 3cf5a6beaa
Rollup merge of #115930 - Zalathar:spans-bug, r=compiler-errors
coverage: Fix an unstable-sort inconsistency in coverage spans

This code was calling `sort_unstable_by`, but failed to impose a total order on the initial spans. That resulted in unpredictable handling of closure spans, producing inconsistencies in the coverage maps and in user-visible coverage reports.

This PR fixes the problem by always sorting closure spans before otherwise-identical non-closure spans, and also switches to a stable sort in case the ordering is still not total.

---

In addition to the fix itself, this PR also contains a cleanup to the comparison function that I was working on when I discovered the bug.
2023-09-19 01:29:42 +02:00
..
rustc
rustc_abi
rustc_arena
rustc_ast Auto merge of #114452 - weiznich:feature/diagnostic_on_unimplemented, r=compiler-errors 2023-09-17 10:00:15 +00:00
rustc_ast_lowering
rustc_ast_passes
rustc_ast_pretty
rustc_attr
rustc_baked_icu_data
rustc_borrowck Remove RegionHighlightMode::tcx. 2023-09-18 09:37:09 +10:00
rustc_builtin_macros Rollup merge of #115891 - RalfJung:structural-trait-derive, r=nnethercote 2023-09-18 18:27:20 +02:00
rustc_codegen_cranelift Auto merge of #115748 - RalfJung:post-mono, r=oli-obk 2023-09-18 19:41:21 +00:00
rustc_codegen_gcc fix gcc, cranelift build 2023-09-15 10:43:44 +02:00
rustc_codegen_llvm cannot have Direct for unsized types 2023-09-15 10:45:37 +02:00
rustc_codegen_ssa Auto merge of #115748 - RalfJung:post-mono, r=oli-obk 2023-09-18 19:41:21 +00:00
rustc_const_eval Auto merge of #115748 - RalfJung:post-mono, r=oli-obk 2023-09-18 19:41:21 +00:00
rustc_data_structures coverage: Simplify sorting of coverage spans extracted from MIR 2023-09-18 23:15:25 +10:00
rustc_driver
rustc_driver_impl
rustc_error_codes Auto merge of #115334 - RalfJung:transparent-aligned-zst, r=compiler-errors 2023-09-17 15:20:44 +00:00
rustc_error_messages
rustc_errors implement -Z ignore-directory-in-diagnostics-source-blocks 2023-09-15 16:22:50 +02:00
rustc_expand
rustc_feature Auto merge of #114452 - weiznich:feature/diagnostic_on_unimplemented, r=compiler-errors 2023-09-17 10:00:15 +00:00
rustc_fluent_macro
rustc_fs_util
rustc_graphviz
rustc_hir
rustc_hir_analysis Auto merge of #115334 - RalfJung:transparent-aligned-zst, r=compiler-errors 2023-09-17 15:20:44 +00:00
rustc_hir_pretty
rustc_hir_typeck Migrate 'cast enum with drop to int' diagnostic 2023-09-18 14:07:05 +00:00
rustc_incremental
rustc_index
rustc_infer Auto merge of #115748 - RalfJung:post-mono, r=oli-obk 2023-09-18 19:41:21 +00:00
rustc_interface Auto merge of #114750 - Enselic:metadata-dep-info, r=compiler-errors 2023-09-17 11:45:53 +00:00
rustc_lexer
rustc_lint Auto merge of #114494 - est31:extend_useless_ptr_null_checks, r=jackh726 2023-09-16 03:40:20 +00:00
rustc_lint_defs Auto merge of #114452 - weiznich:feature/diagnostic_on_unimplemented, r=compiler-errors 2023-09-17 10:00:15 +00:00
rustc_llvm llvm-wrapper: adapt for LLVM API changes 2023-09-15 14:31:43 +00:00
rustc_log
rustc_macros
rustc_metadata Auto merge of #114750 - Enselic:metadata-dep-info, r=compiler-errors 2023-09-17 11:45:53 +00:00
rustc_middle Rollup merge of #115873 - BoxyUwU:tykind_adt_debug, r=oli-obk 2023-09-19 01:29:41 +02:00
rustc_mir_build
rustc_mir_dataflow
rustc_mir_transform Rollup merge of #115930 - Zalathar:spans-bug, r=compiler-errors 2023-09-19 01:29:42 +02:00
rustc_monomorphize
rustc_parse
rustc_parse_format Rollup merge of #115611 - lukas-code:format!("{r#ident}"), r=compiler-errors 2023-09-17 11:23:25 +00:00
rustc_passes Auto merge of #114452 - weiznich:feature/diagnostic_on_unimplemented, r=compiler-errors 2023-09-17 10:00:15 +00:00
rustc_plugin_impl
rustc_privacy
rustc_query_impl
rustc_query_system
rustc_resolve Auto merge of #114452 - weiznich:feature/diagnostic_on_unimplemented, r=compiler-errors 2023-09-17 10:00:15 +00:00
rustc_serialize
rustc_session Rollup merge of #115869 - ferrocene:pa-fix-tests-cargo-remap, r=compiler-errors 2023-09-19 01:29:41 +02:00
rustc_smir
rustc_span Auto merge of #110800 - GuillaumeGomez:custom_code_classes_in_docs, r=t-rustdoc 2023-09-16 13:10:11 +00:00
rustc_symbol_mangling
rustc_target Rollup merge of #115654 - RalfJung:pass-mode-cast, r=compiler-errors 2023-09-17 11:23:25 +00:00
rustc_trait_selection Auto merge of #115748 - RalfJung:post-mono, r=oli-obk 2023-09-18 19:41:21 +00:00
rustc_traits
rustc_transmute
rustc_ty_utils Explain with_reveal_all_normalized usage 2023-09-18 15:17:52 +00:00
rustc_type_ir make more pretty 2023-09-18 17:29:13 +01:00