// We have to check the actual type of the assignment, as that determines if the
// old value is being dropped.
let assigned_ty = place.ty(&self.body.local_decls, self.tcx).ty;
- if assigned_ty.needs_drop(
- self.tcx,
- self.tcx.param_env(base_ty.ty_adt_def().unwrap().did()),
- ) {
+ if assigned_ty.needs_drop(self.tcx, self.param_env) {
// This would be unsafe, but should be outright impossible since we reject such unions.
self.tcx.sess.delay_span_bug(
self.source_info.span,
- "union fields that need dropping should be impossible",
+ format!("union fields that need dropping should be impossible: {assigned_ty}")
);
}
} else {