Merge some ifs.

For more concise code.
This commit is contained in:
Nicholas Nethercote 2024-08-28 12:40:09 +10:00
parent 3b6af9a451
commit 5331280a2b
2 changed files with 15 additions and 24 deletions

View File

@ -37,24 +37,17 @@ fn visit_statement(&mut self, statement: &Statement<'tcx>, location: Location) {
} }
fn visit_place(&mut self, place: &Place<'tcx>, context: PlaceContext, _location: Location) { fn visit_place(&mut self, place: &Place<'tcx>, context: PlaceContext, _location: Location) {
if context.is_borrow() { if context.is_borrow() && util::is_disaligned(self.tcx, self.body, self.param_env, *place) {
if util::is_disaligned(self.tcx, self.body, self.param_env, *place) { let def_id = self.body.source.instance.def_id();
let def_id = self.body.source.instance.def_id(); if let Some(impl_def_id) = self.tcx.impl_of_method(def_id)
if let Some(impl_def_id) = self.tcx.impl_of_method(def_id) && self.tcx.is_builtin_derived(impl_def_id)
&& self.tcx.is_builtin_derived(impl_def_id) {
{ // If we ever reach here it means that the generated derive
// If we ever reach here it means that the generated derive // code is somehow doing an unaligned reference, which it
// code is somehow doing an unaligned reference, which it // shouldn't do.
// shouldn't do. span_bug!(self.source_info.span, "builtin derive created an unaligned reference");
span_bug!( } else {
self.source_info.span, self.tcx.dcx().emit_err(errors::UnalignedPackedRef { span: self.source_info.span });
"builtin derive created an unaligned reference"
);
} else {
self.tcx
.dcx()
.emit_err(errors::UnalignedPackedRef { span: self.source_info.span });
}
} }
} }
} }

View File

@ -1182,12 +1182,10 @@ fn elaborate_coroutine_drops<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
source_info, source_info,
kind: TerminatorKind::Drop { place, target, unwind, replace: _ }, kind: TerminatorKind::Drop { place, target, unwind, replace: _ },
} => { } => {
if let Some(local) = place.as_local() { if let Some(local) = place.as_local()
if local == SELF_ARG { && local == SELF_ARG
(target, unwind, source_info) {
} else { (target, unwind, source_info)
continue;
}
} else { } else {
continue; continue;
} }