# Function rustc_hir_typeck::upvar::restrict_precision_for_unsafe

source ·

    fn restrict_precision_for_unsafe(
        place: Place<'_>,
        curr_mode: UpvarCapture,
    ) -> (Place<'_>, UpvarCapture)

Expand description

Truncate `place` so that an `unsafe` block isn’t required to capture it.

- No projections are applied to raw pointers, since these require unsafe blocks. We capture them completely.
- No projections are applied on top of Union ADTs, since these require unsafe blocks.