@@ -211,51 +211,51 @@ extension UTF8.ValidationError: CustomStringConvertible {
211
211
}
212
212
}
213
213
214
- @available ( SwiftStdlib 6 . 2 , * )
215
- extension UTF8 {
216
- @usableFromInline // for testing purposes
217
- internal static func _checkAllErrors(
218
- _ s: some Sequence < UInt8 >
219
- ) -> Array < UTF8 . ValidationError > {
220
- // TODO: Span fast path
221
- // TODO: Fixed size buffer for non-contig inputs
222
- // TODO: Lifetime-dependent result variant
223
- let cus = Array ( s)
224
- return unsafe cus. withUnsafeBytes {
225
- var bufPtr = unsafe $0
226
- var start = 0
227
- var errors : Array < UTF8 . ValidationError > = [ ]
228
-
229
- // Remember the previous error, so that we can
230
- // apply it to subsequent bytes instead of reporting
231
- // just `.unexpectedContinuation`.
232
- var priorError : UTF8 . ValidationError ? = nil
233
- while true {
234
- do throws ( UTF8 . ValidationError) {
235
- _ = unsafe try bufPtr. baseAddress!. _validateUTF8 ( limitedBy: bufPtr. count)
236
- return errors
237
- } catch {
238
- let adjustedRange =
239
- error. byteOffsets. lowerBound + start ..< error. byteOffsets. upperBound + start
240
-
241
- let kind : UTF8 . ValidationError . Kind
242
- if let prior = priorError,
243
- prior. byteOffsets. upperBound == adjustedRange. lowerBound,
244
- error. kind == . unexpectedContinuationByte
245
- {
246
- kind = prior. kind
247
- } else {
248
- kind = error. kind
249
- }
250
- let adjustedErr = UTF8 . ValidationError ( kind, adjustedRange)
251
- priorError = adjustedErr
252
-
253
- let errEnd = error. byteOffsets. upperBound
254
- start += errEnd
255
- unsafe bufPtr = . init( rebasing: bufPtr [ errEnd... ] )
256
- errors. append ( adjustedErr)
214
+ extension UTF8 {
215
+ @available ( SwiftStdlib 6 . 2 , * )
216
+ @usableFromInline // for testing purposes
217
+ internal static func _checkAllErrors(
218
+ _ s: some Sequence < UInt8 >
219
+ ) -> Array < UTF8 . ValidationError > {
220
+ // TODO: Span fast path
221
+ // TODO: Fixed size buffer for non-contig inputs
222
+ // TODO: Lifetime-dependent result variant
223
+ let cus = Array ( s)
224
+ return unsafe cus. withUnsafeBytes {
225
+ var bufPtr = unsafe $0
226
+ var start = 0
227
+ var errors : Array < UTF8 . ValidationError > = [ ]
228
+
229
+ // Remember the previous error, so that we can
230
+ // apply it to subsequent bytes instead of reporting
231
+ // just `.unexpectedContinuation`.
232
+ var priorError : UTF8 . ValidationError ? = nil
233
+ while true {
234
+ do throws ( UTF8 . ValidationError) {
235
+ _ = unsafe try bufPtr. baseAddress!. _validateUTF8 ( limitedBy: bufPtr. count)
236
+ return errors
237
+ } catch {
238
+ let adjustedRange =
239
+ error. byteOffsets. lowerBound + start ..< error. byteOffsets. upperBound + start
240
+
241
+ let kind : UTF8 . ValidationError . Kind
242
+ if let prior = priorError,
243
+ prior. byteOffsets. upperBound == adjustedRange. lowerBound,
244
+ error. kind == . unexpectedContinuationByte
245
+ {
246
+ kind = prior. kind
247
+ } else {
248
+ kind = error. kind
257
249
}
250
+ let adjustedErr = UTF8 . ValidationError ( kind, adjustedRange)
251
+ priorError = adjustedErr
252
+
253
+ let errEnd = error. byteOffsets. upperBound
254
+ start += errEnd
255
+ unsafe bufPtr = . init( rebasing: bufPtr [ errEnd... ] )
256
+ errors. append ( adjustedErr)
258
257
}
259
258
}
260
259
}
261
- }
260
+ }
261
+ }
0 commit comments