// force-host #![feature(rustc_private)] extern crate rustc_middle; extern crate rustc_driver; use std::any::Any; use std::cell::RefCell; use rustc_driver::plugin::Registry; struct Foo { foo: isize } impl Drop for Foo { fn drop(&mut self) {} } #[no_mangle] fn __rustc_plugin_registrar(_: &mut Registry) { thread_local!(static FOO: RefCell>> = RefCell::new(None)); FOO.with(|s| *s.borrow_mut() = Some(Box::new(Foo { foo: 10 }) as Box)); }