fn compute_unsafe_infer_vars<'a, 'tcx>(
fcx: &'a FnCtxt<'a, 'tcx>,
body_id: LocalDefId,
) -> UnordMap<TyVid, (HirId, Span, UnsafeUseReason)>
Expand description
Finds all type variables which are passed to an unsafe
operation.
For example, for this function f
:
ⓘ
fn f() {
unsafe {
let x /* ?X */ = core::mem::zeroed();
// ^^^^^^^^^^^^^^^^^^^ -- hir_id, span, reason
let y = core::mem::zeroed::<Option<_ /* ?Y */>>();
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- hir_id, span, reason
}
}
compute_unsafe_infer_vars
will return { id(?X) -> (hir_id, span, Call) }