Skip to content

Commit df44a57

Browse files
committed
simplify how inline asm handles MaybeUninit
1 parent ce63e5d commit df44a57

File tree

1 file changed

+1
-13
lines changed

1 file changed

+1
-13
lines changed

compiler/rustc_hir_typeck/src/inline_asm.rs

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -178,19 +178,7 @@ impl<'a, 'tcx> InlineAsmCtxt<'a, 'tcx> {
178178
ty::Never if is_input => return None,
179179
_ if ty.references_error() => return None,
180180
ty::Adt(adt, args) if self.tcx().is_lang_item(adt.did(), LangItem::MaybeUninit) => {
181-
let fields = &adt.non_enum_variant().fields;
182-
let ty = fields[FieldIdx::ONE].ty(self.tcx(), args);
183-
// FIXME: Are we just trying to map to the `T` in `MaybeUninit<T>`?
184-
// If so, just get it from the args.
185-
let ty::Adt(ty, args) = ty.kind() else {
186-
unreachable!("expected first field of `MaybeUninit` to be an ADT")
187-
};
188-
assert!(
189-
ty.is_manually_drop(),
190-
"expected first field of `MaybeUninit` to be `ManuallyDrop`"
191-
);
192-
let fields = &ty.non_enum_variant().fields;
193-
let ty = fields[FieldIdx::ZERO].ty(self.tcx(), args);
181+
let ty = args.type_at(0);
194182
self.get_asm_ty(expr.span, ty)
195183
}
196184
_ => self.get_asm_ty(expr.span, ty),

0 commit comments

Comments
 (0)