Skip to content

Commit 14ac493

Browse files
author
Dave Abrahams
committed
[stdlib] UnicodeDecoders: Hoist encodedReplacementCharacter
1 parent d7d0e5e commit 14ac493

File tree

1 file changed

+6
-22
lines changed

1 file changed

+6
-22
lines changed

test/Prototypes/UnicodeDecoders.swift

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ public protocol _UnicodeEncodingBase {
263263
where EncodedScalar.Iterator.Element == CodeUnit
264264

265265
/// The replacement character U+FFFD as represented in this encoding
266-
static var encodedReplacementScalar : EncodedScalar { get }
266+
static var encodedReplacementCharacter : EncodedScalar { get }
267267

268268
/// Returns true if `x` only appears in this encoding as the representation of
269269
/// a complete scalar value.
@@ -276,8 +276,6 @@ public protocol _UnicodeEncodingBase {
276276
public protocol UnicodeDecoder {
277277
associatedtype Encoding : _UnicodeEncodingBase
278278

279-
static var replacement: Encoding.EncodedScalar { get }
280-
281279
init()
282280

283281
mutating func parseOne<I : IteratorProtocol>(
@@ -328,7 +326,7 @@ extension Unicode.ParsingIterator : IteratorProtocol, Sequence {
328326
mutating func next() -> Decoder.Encoding.EncodedScalar? {
329327
switch decoder.parseOne(&codeUnits) {
330328
case let .valid(scalarContent): return scalarContent
331-
case .invalid: return Decoder.replacement
329+
case .invalid: return Decoder.Encoding.encodedReplacementCharacter
332330
case .emptyInput: return nil
333331
}
334332
}
@@ -598,8 +596,8 @@ extension _UTF8Decoder {
598596
extension Unicode.UTF8 : UnicodeEncoding {
599597
public typealias EncodedScalar = _UIntBuffer<UInt32, UInt8>
600598

601-
public static var encodedReplacementScalar : EncodedScalar {
602-
fatalError()
599+
public static var encodedReplacementCharacter : EncodedScalar {
600+
return EncodedScalar(_storage: 0xbdbfef, _bitCount: 24)
603601
}
604602

605603
public static func _isScalar(_ x: CodeUnit) -> Bool { return x & 0x80 == 0 }
@@ -624,10 +622,6 @@ extension Unicode.UTF8 : UnicodeEncoding {
624622
extension UTF8.ReverseDecoder : _UTF8Decoder {
625623
public typealias Encoding = Unicode.UTF8
626624

627-
public static var replacement : Encoding.EncodedScalar {
628-
return Encoding.EncodedScalar(_storage: 0xefbfbd, _bitCount: 24)
629-
}
630-
631625
public static func decodeOne(_ source: Encoding.EncodedScalar) -> UnicodeScalar {
632626
return UTF8.ForwardDecoder.decodeOne(source)
633627
}
@@ -707,10 +701,6 @@ extension
707701
Unicode.UTF8.ForwardDecoder : _UTF8Decoder {
708702
public typealias Encoding = Unicode.UTF8
709703

710-
public static var replacement : Encoding.EncodedScalar {
711-
return Encoding.EncodedScalar(_storage: 0xbdbfef, _bitCount: 24)
712-
}
713-
714704
public // @testable
715705
func _parseMultipleCodeUnits() -> (isValid: Bool, bitCount: UInt8) {
716706
_sanityCheck(buffer._storage & 0x80 != 0) // this case handled elsewhere
@@ -815,8 +805,8 @@ extension _UTF16Decoder {
815805
extension Unicode.UTF16 : UnicodeEncoding {
816806
public typealias EncodedScalar = _UIntBuffer<UInt32, UInt16>
817807

818-
public static var encodedReplacementScalar : EncodedScalar {
819-
fatalError()
808+
public static var encodedReplacementCharacter : EncodedScalar {
809+
return EncodedScalar(_storage: 0xFFFD, _bitCount: 16)
820810
}
821811

822812
public static func _isScalar(_ x: CodeUnit) -> Bool {
@@ -829,18 +819,12 @@ extension Unicode.UTF16 : UnicodeEncoding {
829819

830820
public struct ForwardDecoder {
831821
public typealias Buffer = _UIntBuffer<UInt32, UInt16>
832-
public static var replacement : Encoding.EncodedScalar {
833-
return Encoding.EncodedScalar(_storage: 0xFFFD, _bitCount: 16)
834-
}
835822
public init() { buffer = Buffer() }
836823
public var buffer: Buffer
837824
}
838825

839826
public struct ReverseDecoder {
840827
public typealias Buffer = _UIntBuffer<UInt32, UInt16>
841-
public static var replacement : Encoding.EncodedScalar {
842-
return Encoding.EncodedScalar(_storage: 0xFFFD, _bitCount: 16)
843-
}
844828
public init() { buffer = Buffer() }
845829
public var buffer: Buffer
846830
}

0 commit comments

Comments
 (0)