Skip to content

Commit

Permalink
Revert "Fix some strong mode issues in the core libraries."
Browse files Browse the repository at this point in the history
This reverts commit e5c091e.

Review-Url: https://codereview.chromium.org/2767943002 .
  • Loading branch information
floitschG committed Mar 22, 2017
1 parent 97cc40e commit a382f78
Show file tree
Hide file tree
Showing 14 changed files with 45 additions and 25 deletions.
6 changes: 0 additions & 6 deletions CHANGELOG.md
@@ -1,9 +1,3 @@
## 1.24.0

### Core library changes
* `dart:convert`
* Removed deprecated `ChunkedConverter` class.

## 1.23.0

### Language
Expand Down
3 changes: 2 additions & 1 deletion sdk/lib/async/stream.dart
Expand Up @@ -1314,7 +1314,8 @@ abstract class Stream<T> {
// should be inferred.
var registeredOnTimeout =
zone.registerUnaryCallback<dynamic, EventSink<T>>(onTimeout);
var wrapper = new _ControllerEventSinkWrapper<T>(null);
_ControllerEventSinkWrapper wrapper =
new _ControllerEventSinkWrapper(null);
timeout = () {
wrapper._sink = controller; // Only valid during call.
zone.runUnaryGuarded(registeredOnTimeout, wrapper);
Expand Down
2 changes: 1 addition & 1 deletion sdk/lib/collection/queue.dart
Expand Up @@ -94,7 +94,7 @@ abstract class Queue<E> implements EfficientLengthIterable<E> {
void clear();
}

class _DoubleLink<Link extends _DoubleLink<Link>> {
class _DoubleLink<Link extends _DoubleLink> {
Link _previousLink;
Link _nextLink;

Expand Down
6 changes: 4 additions & 2 deletions sdk/lib/convert/ascii.dart
Expand Up @@ -69,7 +69,8 @@ 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);
Expand Down Expand Up @@ -154,7 +155,8 @@ 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;

Expand Down
6 changes: 4 additions & 2 deletions sdk/lib/convert/base64.dart
Expand Up @@ -204,7 +204,8 @@ 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;

Expand Down Expand Up @@ -475,7 +476,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();

Expand Down
10 changes: 10 additions & 0 deletions sdk/lib/convert/chunked_conversion.dart
Expand Up @@ -6,6 +6,16 @@ part of dart.convert;

typedef void _ChunkedConversionCallback<T>(T accumulated);

/// This class is deprecated. Extend [Converter] directly.
@deprecated
abstract class ChunkedConverter<S, T, S2, T2> extends Converter<S, T> {
const ChunkedConverter() : super();

dynamic bind(dynamic other) => super.bind(other);
dynamic startChunkedConversion(dynamic sink) =>
super.startChunkedConversion(sink);
}

/**
* A [ChunkedConversionSink] is used to transmit data more efficiently between
* two converters during chunked conversions.
Expand Down
3 changes: 2 additions & 1 deletion sdk/lib/convert/converter.dart
Expand Up @@ -50,7 +50,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;

Expand Down
3 changes: 2 additions & 1 deletion sdk/lib/convert/html_escape.dart
Expand Up @@ -151,7 +151,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;

Expand Down
9 changes: 6 additions & 3 deletions sdk/lib/convert/json.dart
Expand Up @@ -156,7 +156,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.
*
Expand Down Expand Up @@ -282,7 +283,8 @@ 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. */
Expand Down Expand Up @@ -466,7 +468,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.
Expand Down
3 changes: 2 additions & 1 deletion sdk/lib/convert/line_splitter.dart
Expand Up @@ -20,7 +20,8 @@ const int _CR = 13;

class LineSplitter extends Converter<String, List<String>> /*=Object*/
implements
Object/*=StreamTransformer<String, String>*/ {
ChunkedConverter<String, List<String>, String, String>
/*=StreamTransformer<String, String>*/ {
const LineSplitter();

/// Split [lines] into individual lines.
Expand Down
6 changes: 4 additions & 2 deletions sdk/lib/convert/utf.dart
Expand Up @@ -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();

/**
Expand Down Expand Up @@ -302,7 +303,8 @@ 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;

/**
Expand Down
3 changes: 2 additions & 1 deletion sdk/lib/io/data_transformer.dart
Expand Up @@ -292,7 +292,8 @@ 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.
*/
Expand Down
4 changes: 2 additions & 2 deletions sdk/lib/io/file_impl.dart
Expand Up @@ -199,7 +199,7 @@ class _FileStreamConsumer extends StreamConsumer<List<int>> {
}

Future<File> close() =>
_openFuture.then((openedFile) => openedFile.close()).then((_) => _file);
_openFuture.then<File>((openedFile) => openedFile.close());
}

// Class for encapsulating the native implementation of files.
Expand Down Expand Up @@ -556,7 +556,7 @@ class _File extends FileSystemEntity implements File {
Future<File> writeAsBytes(List<int> bytes,
{FileMode mode: FileMode.WRITE, bool flush: false}) {
return open(mode: mode).then((file) {
return file.writeFrom(bytes, 0, bytes.length).then<File>((_) {
return file.writeFrom(bytes, 0, bytes.length).then((_) {
if (flush) return file.flush().then((_) => this);
return this;
}).whenComplete(file.close);
Expand Down
6 changes: 4 additions & 2 deletions sdk/lib/io/string_transformer.dart
Expand Up @@ -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();

List<int> convert(String input) {
Expand Down Expand Up @@ -92,7 +93,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();

String convert(List<int> input) {
Expand Down

0 comments on commit a382f78

Please sign in to comment.