diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-01-15 11:28:27 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-15 11:28:27 +0100 |
| commit | 784e4ba9a4bcbda44021c6ca8345819c91b45066 (patch) | |
| tree | c3aaab4d4755f86055aa6b2e51bb3014be9db111 | |
| parent | 85c119cd519150133279d9f3ae8e964d42a93e6e (diff) | |
| parent | 7debb5c7852c91ef6ecd173057426518463d815a (diff) | |
| download | rust-784e4ba9a4bcbda44021c6ca8345819c91b45066.tar.gz rust-784e4ba9a4bcbda44021c6ca8345819c91b45066.zip | |
Rollup merge of #92879 - compiler-errors:into_iter_unsound, r=dtolnay
Add Sync bound to allocator parameter in vec::IntoIter The `A: Sync` bound was forgotten in https://github.com/rust-lang/rust/commit/8725e4c33749b23f260b2fc46e090c3792b6f97e#diff-b78c3ab6d37f4ede32195707528f8a76c49d4557cc9d3a7a09417b5157729b9fR3132 Similar `unsafe impl Sync` in that commit _do_ include the `A: Sync` bound (and around the alloc lib), so I think this was just an honest mistake. Here's an example of the unsoundness: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=16cbfeff7c934ae72ab632c1476fdd8b `@steffahn` found this, I'm just putting up the fix cause nobody else did :^) Fixes #92633
| -rw-r--r-- | library/alloc/src/vec/into_iter.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/library/alloc/src/vec/into_iter.rs b/library/alloc/src/vec/into_iter.rs index 18e191f2b59..f985fb78465 100644 --- a/library/alloc/src/vec/into_iter.rs +++ b/library/alloc/src/vec/into_iter.rs @@ -125,7 +125,7 @@ impl<T, A: Allocator> AsRef<[T]> for IntoIter<T, A> { #[stable(feature = "rust1", since = "1.0.0")] unsafe impl<T: Send, A: Allocator + Send> Send for IntoIter<T, A> {} #[stable(feature = "rust1", since = "1.0.0")] -unsafe impl<T: Sync, A: Allocator> Sync for IntoIter<T, A> {} +unsafe impl<T: Sync, A: Allocator + Sync> Sync for IntoIter<T, A> {} #[stable(feature = "rust1", since = "1.0.0")] impl<T, A: Allocator> Iterator for IntoIter<T, A> { |
