Add rustc_on_unimplemented
on Sync
for cell types
Suggest using a lock instead.
This commit is contained in:
parent
e1f630f23d
commit
6d0c91fda3
18 changed files with 229 additions and 5 deletions
13
tests/ui/sync/mutexguard-sync.rs
Normal file
13
tests/ui/sync/mutexguard-sync.rs
Normal file
|
@ -0,0 +1,13 @@
|
|||
// MutexGuard<Cell<i32>> must not be Sync, that would be unsound.
|
||||
use std::sync::Mutex;
|
||||
use std::cell::Cell;
|
||||
|
||||
fn test_sync<T: Sync>(_t: T) {}
|
||||
|
||||
fn main()
|
||||
{
|
||||
let m = Mutex::new(Cell::new(0i32));
|
||||
let guard = m.lock().unwrap();
|
||||
test_sync(guard);
|
||||
//~^ ERROR `Cell<i32>` cannot be shared between threads safely [E0277]
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue