fn invalidate_cache(&mut self, unwind: bool) {
        self.cached_exits.clear();
        if !unwind { return; }
        for dropdata in &mut self.drops {
            if let DropKind::Value { ref mut cached_block } = dropdata.kind {
                *cached_block = None;
            }
        }
    }
/// Invalidate all the cached blocks in the scope.
///
/// Should always be run for all inner scopes when a drop is pushed into some scope enclosing a
/// larger extent of code.
///
/// `unwind` controls whether caches for the unwind branch are also invalidated.
Invalidate all the cached blocks in the scope.
Should always be run for all inner scopes when a drop is pushed into some scope enclosing a
larger extent of code.

`unwind` controls whether caches for the unwind branch are also invalidated.
Invalidate all the cached blocks in the scope . Should always be run for all inner scopes when a drop is pushed into some scope enclosing a larger extent of code . ` unwind ` controls whether caches for the unwind branch are also invalidated .
fn invalidate_cache(&mut self, unwind: bool) {
        self.cached_exits.clear();
        if !unwind { return; }
        for dropdata in &mut self.drops {
            if let DropKind::Value { ref mut cached_block } = dropdata.kind {
                *cached_block = None;
            }
        }
    }
fn invalidate_cache ( & mut self , unwind : bool ) { self . cached_exits . clear ( ) ; if ! unwind { return ; } for dropdata in & mut self . drops { if let DropKind :: Value { ref mut cached_block } = dropdata . kind { * cached_block = None ; } } }
Invalidate all the cached blocks in the scope.
Invalidate all the cached blocks in the scope .
&mut self
unwind
bool
&mut self
unwind
bool