@@ -85,7 +85,7 @@ extension AsyncSequence {
8585 /// - Parameter transform: A mapping closure. `transform` accepts an iterator representing the original sequence as its parameter and returns a transformed value. Returning `nil` will stop the sequence early, as will throwing an error.
8686 /// - Returns: An asynchronous sequence that contains, in order, elements produced by the `transform` closure.
8787 @inlinable
88- public func iteratorMap< Transformed> ( _ transform: @escaping ( _ iterator: inout AsyncBufferedIterator < AsyncIterator > ) async throws -> Transformed ) -> AsyncThrowingIteratorMapSequence < Self , Transformed > {
88+ public func iteratorMap< Transformed> ( _ transform: @Sendable @ escaping ( _ iterator: inout AsyncBufferedIterator < AsyncIterator > ) async throws -> Transformed ) -> AsyncThrowingIteratorMapSequence < Self , Transformed > {
8989 AsyncThrowingIteratorMapSequence ( self , transform: transform)
9090 }
9191}
@@ -148,17 +148,20 @@ extension AsyncIteratorMapSequence: AsyncSequence {
148148 }
149149}
150150
151+ extension AsyncIteratorMapSequence : Sendable where Base: Sendable , Transformed: Sendable , Base. Element: Sendable , Base. AsyncIterator: Sendable { }
152+ extension AsyncIteratorMapSequence . AsyncIterator : Sendable where Base: Sendable , Base. AsyncIterator: Sendable , Transformed: Sendable , Element: Sendable , Base. Element: Sendable { }
153+
151154public struct AsyncThrowingIteratorMapSequence < Base, Transformed> where Base : AsyncSequence {
152155 @usableFromInline
153156 let base : Base
154157
155158 @usableFromInline
156- let transform : ( _ iterator: inout AsyncBufferedIterator < Base . AsyncIterator > ) async throws -> Transformed
159+ let transform : @ Sendable ( _ iterator: inout AsyncBufferedIterator < Base . AsyncIterator > ) async throws -> Transformed
157160
158161 @usableFromInline
159162 init (
160163 _ base: Base ,
161- transform: @escaping ( _ iterator: inout AsyncBufferedIterator < Base . AsyncIterator > ) async throws -> Transformed
164+ transform: @Sendable @ escaping ( _ iterator: inout AsyncBufferedIterator < Base . AsyncIterator > ) async throws -> Transformed
162165 ) {
163166 self . base = base
164167 self . transform = transform
@@ -173,13 +176,16 @@ extension AsyncThrowingIteratorMapSequence: AsyncSequence {
173176 var baseIterator : AsyncBufferedIterator < Base . AsyncIterator >
174177
175178 @usableFromInline
176- let transform : ( _ iterator: inout AsyncBufferedIterator < Base . AsyncIterator > ) async throws -> Transformed
179+ let transform : @ Sendable ( _ iterator: inout AsyncBufferedIterator < Base . AsyncIterator > ) async throws -> Transformed
177180
178181 @usableFromInline
179182 var encounteredError = false
180183
181184 @usableFromInline
182- init ( _ baseIterator: AsyncBufferedIterator < Base . AsyncIterator > , transform: @escaping ( inout AsyncBufferedIterator < Base . AsyncIterator > ) async throws -> Transformed ) {
185+ init (
186+ _ baseIterator: AsyncBufferedIterator < Base . AsyncIterator > ,
187+ transform: @Sendable @escaping ( inout AsyncBufferedIterator < Base . AsyncIterator > ) async throws -> Transformed
188+ ) {
183189 self . baseIterator = baseIterator
184190 self . transform = transform
185191 }
@@ -207,7 +213,7 @@ extension AsyncThrowingIteratorMapSequence: AsyncSequence {
207213 }
208214}
209215
210- extension AsyncIteratorMapSequence : Sendable where Base: Sendable , Transformed: Sendable , Base. Element: Sendable , Base. AsyncIterator: Sendable { }
211- extension AsyncIteratorMapSequence . AsyncIterator : Sendable where Base: Sendable , Base. AsyncIterator: Sendable , Transformed: Sendable , Element: Sendable , Base. Element: Sendable { }
216+ extension AsyncThrowingIteratorMapSequence : Sendable where Base: Sendable , Transformed: Sendable , Base. Element: Sendable , Base. AsyncIterator: Sendable { }
217+ extension AsyncThrowingIteratorMapSequence . AsyncIterator : Sendable where Base: Sendable , Base. AsyncIterator: Sendable , Transformed: Sendable , Element: Sendable , Base. Element: Sendable { }
212218
213219#endif
0 commit comments