@@ -445,22 +445,22 @@ extension String {
445
445
/// sequences and the second with an ill-formed sequence at the end.
446
446
///
447
447
/// let validUTF8: [UInt8] = [67, 97, 102, -61, -87, 0]
448
- /// let s = String(uninitializedCapacity : validUTF8.count,
448
+ /// let s = String(unsafeUninitializedCapacity : validUTF8.count,
449
449
/// initializingUTF8With: { ptr in
450
450
/// ptr.initializeFrom(validUTF8)
451
451
/// return validUTF8.count
452
452
/// })
453
453
/// // Prints "Café"
454
454
///
455
455
/// let invalidUTF8: [UInt8] = [67, 97, 102, -61, 0]
456
- /// let s = String(uninitializedCapacity : invalidUTF8.count,
456
+ /// let s = String(unsafeUninitializedCapacity : invalidUTF8.count,
457
457
/// initializingUTF8With: { ptr in
458
458
/// ptr.initializeFrom(invalidUTF8)
459
459
/// return invalidUTF8.count
460
460
/// })
461
461
/// // Prints "Caf�"
462
462
///
463
- /// let s = String(uninitializedCapacity : invalidUTF8.count,
463
+ /// let s = String(unsafeUninitializedCapacity : invalidUTF8.count,
464
464
/// initializingUTF8With: { ptr in
465
465
/// ptr.initializeFrom(invalidUTF8)
466
466
/// return 0
@@ -475,6 +475,20 @@ extension String {
475
475
/// - Parameters:
476
476
/// - buffer: A buffer covering uninitialized memory with room for the
477
477
/// specified number of UTF-8 code units.
478
+ @inline ( __always)
479
+ @available ( macOS 9999 , iOS 9999 , tvOS 9999 , watchOS 9999 , * )
480
+ public init (
481
+ unsafeUninitializedCapacity capacity: Int ,
482
+ initializingUTF8With initializer: (
483
+ _ buffer: UnsafeMutableBufferPointer < UInt8 >
484
+ ) throws -> Int
485
+ ) rethrows {
486
+ self = try String (
487
+ uninitializedCapacity: capacity,
488
+ initializingUTF8With: initializer
489
+ )
490
+ }
491
+
478
492
@inline ( __always)
479
493
internal init (
480
494
uninitializedCapacity capacity: Int ,
0 commit comments