     }
     // Buffering mode.
     // Fill buffer back to 4 bytes (or as many as are left in the iterator).
-    _sanityCheck(buffer._bitCount < 32)
+    _sanityCheck(buffer._bitCount < _UInt32.bitWidth)
     repeat {
       if let codeUnit = input.next() {
         buffer.append(codeUnit)

  ) -> Int
  where I.Element == Encoding.CodeUnit
  {
    var errors = 0
    var d = Self()
    while true {
      switch d.parseOne(&input) {
      case let .valid(scalarContent):
        output(Encoding.decode(scalarContent))
      case .invalid:
        if !makeRepairs { return 1 }
        errors += 1
        output(UnicodeScalar(_unchecked: 0xFFFD))
      case .emptyInput:
        return errors
      }
    }
  }

      _elements: codeUnits, _position: nextPosition
    )
    var d = Encoding.ForwardDecoder()
    switch d.parseScalar(from: &i) {
    case .valid(let scalarContent):
      return Index(
        codeUnitIndex: nextPosition,
