about summary refs log tree commit diff
path: root/library/core/src
diff options
context:
space:
mode:
authorbstrie <865233+bstrie@users.noreply.github.com>2021-07-27 18:50:34 -0400
committerbstrie <865233+bstrie@users.noreply.github.com>2021-11-08 13:07:20 -0500
commit86c0ef8adcf2c60dc21a8a9b8f2d6992f2d7613c (patch)
tree191747195cf97b1af521e27abac01e4d67b48a99 /library/core/src
parent495322d776fd6f679cd8cd4ca02b8fa834da654b (diff)
downloadrust-86c0ef8adcf2c60dc21a8a9b8f2d6992f2d7613c.tar.gz
rust-86c0ef8adcf2c60dc21a8a9b8f2d6992f2d7613c.zip
Add comments regarding superfluous `!Sync` impls
Diffstat (limited to 'library/core/src')
-rw-r--r--library/core/src/cell.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/library/core/src/cell.rs b/library/core/src/cell.rs
index d154bb3583c..06dc5ecf2ff 100644
--- a/library/core/src/cell.rs
+++ b/library/core/src/cell.rs
@@ -240,6 +240,11 @@ pub struct Cell<T: ?Sized> {
 #[stable(feature = "rust1", since = "1.0.0")]
 unsafe impl<T: ?Sized> Send for Cell<T> where T: Send {}
 
+// Note that this negative impl isn't strictly necessary for correctness,
+// as `Cell` wraps `UnsafeCell`, which is itself `!Sync`.
+// However, given how important `Cell`'s `!Sync`-ness is,
+// having an explicit negative impl is nice for documentation purposes
+// and results in nicer error messages.
 #[stable(feature = "rust1", since = "1.0.0")]
 impl<T: ?Sized> !Sync for Cell<T> {}