rust/compiler/rustc_mir_transform/src
Matthias Krüger 11d5614a74
Rollup merge of #130013 - jonathan-conder:await_coverage, r=Zalathar
coverage: Count await when the Future is immediately ready

Currently `await` is only counted towards coverage if the containing
function is suspended and resumed at least once. This is because it
expands to code which contains a branch on the discriminant of `Poll`.

By treating it like a branching macro (e.g. `assert!`), these
implementation details will be hidden from the coverage results.

I added a test to ensure the fix works in simple cases, but the heuristic of picking only the first await-related covspan might be unreliable. I plan on testing more thoroughly with a real codebase over the next couple of weeks.

closes #98712
2024-09-06 07:33:59 +02:00
..
coroutine Re-parent the by-move body 2024-09-04 06:28:32 -04:00
coverage coverage: Treat await similar to a macro 2024-09-06 17:01:59 +12:00
inline Remove #[macro_use] extern crate tracing from rustc_mir_transform. 2024-08-30 10:01:34 +10:00
shim Remove #[macro_use] extern crate tracing from rustc_mir_transform. 2024-08-30 10:01:34 +10:00
abort_unwinding_calls.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
add_call_guards.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
add_moves_for_packed_drops.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
add_retag.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
add_subtyping_projections.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
check_alignment.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
check_const_item_mutation.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
check_packed_ref.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
cleanup_post_borrowck.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
copy_prop.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
coroutine.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
cost_checker.rs Fix conflicts after rebase 2024-07-07 18:16:38 +02:00
cross_crate_inline.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
ctfe_limit.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
dataflow_const_prop.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
dead_store_elimination.rs Rollup merge of #129926 - nnethercote:mv-SanityCheck-and-MirPass, r=cjgillot 2024-09-03 19:13:27 +02:00
deduce_param_attrs.rs rename AddressOf -> RawBorrow inside the compiler 2024-08-18 19:46:53 +02:00
deduplicate_blocks.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
deref_separator.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
dest_prop.rs Rollup merge of #129720 - nnethercote:simplify-dest_prop-mm, r=cjgillot 2024-09-05 18:58:55 +02:00
dump_mir.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
early_otherwise_branch.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
elaborate_box_derefs.rs Rollup merge of #129969 - GrigorenkoPV:boxed-ty, r=compiler-errors 2024-09-06 07:33:58 +02:00
elaborate_drops.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
errors.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
ffi_unwind_calls.rs Remove #[macro_use] extern crate tracing from rustc_mir_transform. 2024-08-30 10:01:34 +10:00
function_item_references.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
gvn.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
inline.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
instsimplify.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
jump_threading.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
known_panics_lint.rs Rollup merge of #129926 - nnethercote:mv-SanityCheck-and-MirPass, r=cjgillot 2024-09-03 19:13:27 +02:00
large_enums.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
lib.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
lint.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
lower_intrinsics.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
lower_slice_len.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
match_branches.rs Rollup merge of #129926 - nnethercote:mv-SanityCheck-and-MirPass, r=cjgillot 2024-09-03 19:13:27 +02:00
mentioned_items.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
multiple_return_terminators.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
nrvo.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
pass_manager.rs Clarify a comment. 2024-09-03 16:04:09 +10:00
prettify.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
promote_consts.rs Rollup merge of #129926 - nnethercote:mv-SanityCheck-and-MirPass, r=cjgillot 2024-09-03 19:13:27 +02:00
ref_prop.rs Rollup merge of #129926 - nnethercote:mv-SanityCheck-and-MirPass, r=cjgillot 2024-09-03 19:13:27 +02:00
remove_noop_landing_pads.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
remove_place_mention.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
remove_storage_markers.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
remove_uninit_drops.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
remove_unneeded_drops.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
remove_zsts.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
required_consts.rs MIR required_consts, mentioned_items: ensure we do not forget to fill these lists 2024-08-01 15:49:25 +02:00
reveal_all.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
sanity_check.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
shim.rs Remove #[macro_use] extern crate tracing from rustc_mir_transform. 2024-08-30 10:01:34 +10:00
simplify_branches.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
simplify_comparison_integral.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
simplify.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
single_use_consts.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
sroa.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
ssa.rs Remove #[macro_use] extern crate tracing from rustc_mir_transform. 2024-08-30 10:01:34 +10:00
unreachable_enum_branching.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
unreachable_prop.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
validate.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00