mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 21:40:07 +00:00
Avoid runtime type errors in checked mode for ChunkedConverters.
R=lrn@google.com Review URL: https://codereview.chromium.org/2035473003 .
This commit is contained in:
parent
c59d37032e
commit
d3579131c8
|
@ -69,7 +69,9 @@ class AsciiCodec extends Encoding {
|
|||
|
||||
// Superclass for [AsciiEncoder] and [Latin1Encoder].
|
||||
// Generalizes common operations that only differ by a mask;
|
||||
class _UnicodeSubsetEncoder extends Converter<String, List<int>> {
|
||||
class _UnicodeSubsetEncoder extends Converter<String, List<int>>
|
||||
implements ChunkedConverter<String, List<int>, String, List<int>> {
|
||||
|
||||
final int _subsetMask;
|
||||
|
||||
const _UnicodeSubsetEncoder(this._subsetMask);
|
||||
|
@ -154,7 +156,9 @@ class _UnicodeSubsetEncoderSink extends StringConversionSinkBase {
|
|||
* This class converts Latin-1 bytes (lists of unsigned 8-bit integers)
|
||||
* to a string.
|
||||
*/
|
||||
abstract class _UnicodeSubsetDecoder extends Converter<List<int>, String> {
|
||||
abstract class _UnicodeSubsetDecoder extends Converter<List<int>, String>
|
||||
implements ChunkedConverter<List<int>, String, List<int>, String> {
|
||||
|
||||
final bool _allowInvalid;
|
||||
final int _subsetMask;
|
||||
|
||||
|
|
|
@ -70,7 +70,9 @@ class Base64Codec extends Codec<List<int>, String> {
|
|||
*
|
||||
* The results are ASCII strings using a restricted alphabet.
|
||||
*/
|
||||
class Base64Encoder extends Converter<List<int>, String> {
|
||||
class Base64Encoder extends Converter<List<int>, String>
|
||||
implements ChunkedConverter<List<int>, String, List<int>, String> {
|
||||
|
||||
final bool _urlSafe;
|
||||
|
||||
const Base64Encoder() : _urlSafe = false;
|
||||
|
@ -340,7 +342,8 @@ class _Utf8Base64EncoderSink extends _Base64EncoderSink {
|
|||
*
|
||||
* The encoding is required to be properly padded.
|
||||
*/
|
||||
class Base64Decoder extends Converter<String, List<int>> {
|
||||
class Base64Decoder extends Converter<String, List<int>>
|
||||
implements ChunkedConverter<String, List<int>, String, List<int>> {
|
||||
|
||||
const Base64Decoder();
|
||||
|
||||
|
|
|
@ -52,7 +52,8 @@ abstract class Converter<S, T> implements StreamTransformer/*<S, T>*/ {
|
|||
*
|
||||
* For a non-chunked conversion converts the input in sequence.
|
||||
*/
|
||||
class _FusedConverter<S, M, T> extends Converter<S, T> {
|
||||
class _FusedConverter<S, M, T> extends Converter<S, T>
|
||||
implements ChunkedConverter<S, T, S, T> {
|
||||
final Converter<S, M> _first;
|
||||
final Converter<M, T> _second;
|
||||
|
||||
|
|
|
@ -152,7 +152,8 @@ class HtmlEscapeMode {
|
|||
* found to be easier to read if greater-than is also escaped whenever
|
||||
* less-than is.
|
||||
*/
|
||||
class HtmlEscape extends Converter<String, String> {
|
||||
class HtmlEscape extends Converter<String, String>
|
||||
implements ChunkedConverter<String, String, String, String> {
|
||||
|
||||
/** The [HtmlEscapeMode] used by the converter. */
|
||||
final HtmlEscapeMode mode;
|
||||
|
|
|
@ -159,7 +159,8 @@ class JsonCodec extends Codec<Object, String> {
|
|||
/**
|
||||
* This class converts JSON objects to strings.
|
||||
*/
|
||||
class JsonEncoder extends Converter<Object, String> {
|
||||
class JsonEncoder extends Converter<Object, String>
|
||||
implements ChunkedConverter<Object, String, Object, String> {
|
||||
/**
|
||||
* The string used for indention.
|
||||
*
|
||||
|
@ -284,7 +285,9 @@ class JsonEncoder extends Converter<Object, String> {
|
|||
* a JSON string, and then UTF-8 encoding the string, but without
|
||||
* creating an intermediate string.
|
||||
*/
|
||||
class JsonUtf8Encoder extends Converter<Object, List<int>> {
|
||||
class JsonUtf8Encoder extends Converter<Object, List<int>>
|
||||
implements ChunkedConverter<Object, List<int>, Object, List<int>> {
|
||||
|
||||
/** Default buffer size used by the JSON-to-UTF-8 encoder. */
|
||||
static const int DEFAULT_BUFFER_SIZE = 256;
|
||||
/** Indentation used in pretty-print mode, `null` if not pretty. */
|
||||
|
@ -470,7 +473,8 @@ class _JsonUtf8EncoderSink extends ChunkedConversionSink<Object> {
|
|||
/**
|
||||
* This class parses JSON strings and builds the corresponding objects.
|
||||
*/
|
||||
class JsonDecoder extends Converter<String, Object> {
|
||||
class JsonDecoder extends Converter<String, Object>
|
||||
implements ChunkedConverter<String, Object, String, Object> {
|
||||
final _Reviver _reviver;
|
||||
/**
|
||||
* Constructs a new JsonDecoder.
|
||||
|
|
|
@ -19,7 +19,8 @@ const int _CR = 13;
|
|||
*/
|
||||
class LineSplitter
|
||||
extends Converter<String, List<String>>/*=Object*/
|
||||
implements Object/*=StreamTransformer<String, String>*/ {
|
||||
implements ChunkedConverter<String, List<String>, String, String>
|
||||
/*=StreamTransformer<String, String>*/ {
|
||||
|
||||
const LineSplitter();
|
||||
|
||||
|
|
|
@ -76,7 +76,8 @@ class Utf8Codec extends Encoding {
|
|||
* This class converts strings to their UTF-8 code units (a list of
|
||||
* unsigned 8-bit integers).
|
||||
*/
|
||||
class Utf8Encoder extends Converter<String, List<int>> {
|
||||
class Utf8Encoder extends Converter<String, List<int>>
|
||||
implements ChunkedConverter<String, List<int>, String, List<int>> {
|
||||
|
||||
const Utf8Encoder();
|
||||
|
||||
|
@ -304,7 +305,9 @@ class _Utf8EncoderSink extends _Utf8Encoder with StringConversionSinkMixin {
|
|||
* This class converts UTF-8 code units (lists of unsigned 8-bit integers)
|
||||
* to a string.
|
||||
*/
|
||||
class Utf8Decoder extends Converter<List<int>, String> {
|
||||
class Utf8Decoder extends Converter<List<int>, String>
|
||||
implements ChunkedConverter<List<int>, String, List<int>, String> {
|
||||
|
||||
final bool _allowMalformed;
|
||||
|
||||
/**
|
||||
|
|
|
@ -275,7 +275,9 @@ class GZipCodec extends Codec<List<int>, List<int>> {
|
|||
* The [ZLibEncoder] encoder is used by [ZLibCodec] and [GZipCodec] to compress
|
||||
* data.
|
||||
*/
|
||||
class ZLibEncoder extends Converter<List<int>, List<int>> {
|
||||
class ZLibEncoder extends Converter<List<int>, List<int>>
|
||||
implements ChunkedConverter<List<int>, List<int>, List<int>, List<int>> {
|
||||
|
||||
/**
|
||||
* When true, `GZip` frames will be added to the compressed data.
|
||||
*/
|
||||
|
|
|
@ -42,7 +42,8 @@ class SystemEncoding extends Encoding {
|
|||
}
|
||||
}
|
||||
|
||||
class _WindowsCodePageEncoder extends Converter<String, List<int>> {
|
||||
class _WindowsCodePageEncoder extends Converter<String, List<int>>
|
||||
implements ChunkedConverter<String, List<int>, String, List<int>> {
|
||||
|
||||
const _WindowsCodePageEncoder();
|
||||
|
||||
|
@ -94,7 +95,8 @@ class _WindowsCodePageEncoderSink extends StringConversionSinkBase {
|
|||
}
|
||||
|
||||
|
||||
class _WindowsCodePageDecoder extends Converter<List<int>, String> {
|
||||
class _WindowsCodePageDecoder extends Converter<List<int>, String>
|
||||
implements ChunkedConverter<List<int>, String, List<int>, String> {
|
||||
|
||||
const _WindowsCodePageDecoder();
|
||||
|
||||
|
|
Loading…
Reference in a new issue