rust/compiler/rustc_mir_transform/src
Tomasz Miąsko c678acd3a2 Leave promoteds untainted by errors when borrowck fails
Previously, when borrowck failed it would taint all promoteds within the MIR
body. An attempt to evaluated the promoteds would subsequently fail with
spurious "note: erroneous constant used". For example:

```console
...
note: erroneous constant used
 --> tests/ui/borrowck/tainted-promoteds.rs:7:9
  |
7 |     a = &0 * &1 * &2 * &3;
  |         ^^

note: erroneous constant used
 --> tests/ui/borrowck/tainted-promoteds.rs:7:14
  |
7 |     a = &0 * &1 * &2 * &3;
  |              ^^

note: erroneous constant used
 --> tests/ui/borrowck/tainted-promoteds.rs:7:19
  |
7 |     a = &0 * &1 * &2 * &3;
  |                   ^^

note: erroneous constant used
 --> tests/ui/borrowck/tainted-promoteds.rs:7:24
  |
7 |     a = &0 * &1 * &2 * &3;
  |                        ^^
```

Borrowck failure doesn't indicate that there is anything wrong with
promoteds. Leave them untainted.
2023-04-30 23:57:47 +02:00
..
coverage Auto merge of #97368 - tmandry:coverage-underflow, r=jyn514 2023-04-26 12:03:13 +00:00
inline rename needs_subst to has_param 2023-04-27 08:35:19 +01:00
abort_unwinding_calls.rs Add UnwindAction::Terminate 2023-04-06 09:34:16 +01:00
add_call_guards.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
add_moves_for_packed_drops.rs Spelling - compiler 2023-04-17 16:09:18 -04:00
add_retag.rs Spelling - compiler 2023-04-17 16:09:18 -04:00
check_alignment.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
check_const_item_mutation.rs Move some utils out of rustc_const_eval 2023-04-16 12:05:54 +02:00
check_packed_ref.rs improve error notes for packed struct reference diagnostic 2023-04-28 20:28:56 -05:00
check_unsafety.rs Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
cleanup_post_borrowck.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
const_debuginfo.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
const_goto.rs Disable ConstGoto opt in cleanup blocks 2023-01-26 03:50:37 -08:00
const_prop.rs Auto merge of #110882 - BoxyUwU:rename-some-ty-flags, r=compiler-errors 2023-04-27 09:55:37 +00:00
const_prop_lint.rs rename needs_subst to has_param 2023-04-27 08:35:19 +01:00
copy_prop.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
ctfe_limit.rs don't into self 2023-02-16 18:30:25 +01:00
dataflow_const_prop.rs Rollup merge of #110685 - cjgillot:clean-dcp, r=oli-obk 2023-04-25 02:33:30 +09:00
dead_store_elimination.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
deduce_param_attrs.rs Check freeze with right param-env 2023-04-16 23:09:57 +00:00
deduplicate_blocks.rs Replace Body::basic_blocks() with field access 2022-08-26 14:27:08 +02:00
deref_separator.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
dest_prop.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
dump_mir.rs Auto merge of #105220 - oli-obk:feeding, r=cjgillot 2022-12-06 03:47:41 +00:00
early_otherwise_branch.rs Remove unneeded field from SwitchTargets 2022-12-09 04:53:10 -08:00
elaborate_box_derefs.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
elaborate_drops.rs Make drop_flags an IndexVec. 2023-04-28 20:12:45 +00:00
ffi_unwind_calls.rs Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
function_item_references.rs Move GenericArgKind::as_{type,const,region} to GenericArg 2023-04-19 17:59:30 +00:00
generator.rs Rollup merge of #110556 - kylematsuda:earlybinder-explicit-item-bounds, r=compiler-errors 2023-04-25 21:06:32 +02:00
inline.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
instcombine.rs Run combine_duplicate_switch_targets after the simplification that produces them 2023-04-20 20:40:01 -04:00
large_enums.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
lib.rs Leave promoteds untainted by errors when borrowck fails 2023-04-30 23:57:47 +02:00
lower_intrinsics.rs Lower intrinsics::offset to mir::BinOp::Offset 2023-04-25 19:23:45 -07:00
lower_slice_len.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
match_branches.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
multiple_return_terminators.rs Replace Body::basic_blocks() with field access 2022-08-26 14:27:08 +02:00
normalize_array_len.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
nrvo.rs Remove LocalKind::Var. 2023-03-14 20:52:42 +01:00
pass_manager.rs Use zero based indexing for pass_count 2022-12-02 15:55:24 +00:00
remove_noop_landing_pads.rs Rename Abort terminator to Terminate 2023-04-06 09:34:16 +01:00
remove_place_mention.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
remove_storage_markers.rs Make MIR basic blocks field public 2022-07-07 08:11:49 +02:00
remove_uninit_drops.rs Move mir::Fieldabi::FieldIdx 2023-03-28 22:22:37 -07:00
remove_unneeded_drops.rs Make MIR basic blocks field public 2022-07-07 08:11:49 +02:00
remove_zsts.rs Generalize operation. 2023-03-13 18:22:55 +00:00
required_consts.rs Don't ICE when encountering ConstKind::Error in RequiredConstsVisitor 2022-11-10 05:14:04 +00:00
reveal_all.rs Also reveal constants before MIR opts. 2023-04-23 10:04:41 +00:00
separate_const_switch.rs offset_of 2023-04-21 02:14:02 -07:00
shim.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
simplify.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
simplify_branches.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
simplify_comparison_integral.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
sroa.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
ssa.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
uninhabited_enum_branching.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
unreachable_prop.rs Fix typos in compiler 2023-04-10 22:02:52 +02:00