fn report_shared(&self, err: DivergenceErrors) {
        self.shadow
            .take()
            .unwrap()
            .report(err, self.main.dump_state());
    }
The caller is responsible for dropping any `shadow` borrows beforehand.
core/lib/vm_interface/src/utils/shadow.rs