| #![feature(reentrant_lock)] | |
| use std::sync::ReentrantLock; | |
| use std::cell::Cell; | |
| // ReentrantLockGuard<Cell<i32>> must not be Sync, that would be unsound. | |
| fn test_sync<T: Sync>(_t: T) {} | |
| fn main() | |
| { | |
| let m = ReentrantLock::new(Cell::new(0i32)); | |
| let guard = m.lock(); | |
| test_sync(guard); | |
| //~^ ERROR `Cell<i32>` cannot be shared between threads safely [E0277] | |
| } |