   static func _isScalar(_: Encoding.CodeUnit) -> Bool
   func _parseMultipleCodeUnits() -> (isValid: Bool, bitCount: UInt8)
   var buffer: Encoding.EncodedScalar { get set }
+  func _bufferedScalar(bitCount: UInt8) -> Encoding.EncodedScalar
 }
 
 extension _UTFDecoder where Encoding.EncodedScalar == _UIntBuffer<UInt32, Encoding.CodeUnit> {

      return UnicodeScalar(_unchecked: value)
    }
  }
}

//===----------------------------------------------------------------------===//

  }
  
  public static func decodeOne(_ source: Encoding.EncodedScalar) -> UnicodeScalar {
    return UTF16.ForwardDecoder.decodeOne(source)
  }
  
  public func _bufferedScalar(bitCount: UInt8) -> Encoding.EncodedScalar {
    return Encoding.EncodedScalar(
      _storage:
        (buffer._storage << 16 | buffer._storage >> 16) &>> (32 - bitCount),
      _bitCount: bitCount
    )
  }
}

extension Unicode.UTF16.ForwardDecoder : _UTF16Decoder {
