1
Fork 0

Deduplicate tcx.instance_mir(instance) calls in try_instance_mir

This commit is contained in:
zetanumbers 2024-02-08 15:42:41 +03:00
parent af88f7db51
commit da4ec6ffa7

View file

@ -1027,9 +1027,9 @@ fn try_instance_mir<'tcx>(
tcx: TyCtxt<'tcx>,
instance: InstanceDef<'tcx>,
) -> Result<&'tcx Body<'tcx>, &'static str> {
match instance {
ty::InstanceDef::DropGlue(_, Some(ty)) => match ty.kind() {
ty::Adt(def, args) => {
if let ty::InstanceDef::DropGlue(_, Some(ty)) = instance
&& let ty::Adt(def, args) = ty.kind()
{
let fields = def.all_fields();
for field in fields {
let field_ty = field.ty(tcx, args);
@ -1037,11 +1037,6 @@ fn try_instance_mir<'tcx>(
return Err("cannot build drop shim for polymorphic type");
}
}
}
Ok(tcx.instance_mir(instance))
}
_ => Ok(tcx.instance_mir(instance)),
},
_ => Ok(tcx.instance_mir(instance)),
}
}