Skip to content

Commit

Permalink
Fix some strong mode issues in the core libraries.
Browse files Browse the repository at this point in the history
R=vsm@google.com

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

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

## 1.23.0

### Language
Expand Down
3 changes: 1 addition & 2 deletions sdk/lib/async/stream.dart
Expand Up @@ -1314,8 +1314,7 @@ abstract class Stream<T> {
// should be inferred.
var registeredOnTimeout =
zone.registerUnaryCallback<dynamic, EventSink<T>>(onTimeout);
_ControllerEventSinkWrapper wrapper =
new _ControllerEventSinkWrapper(null);
var wrapper = new _ControllerEventSinkWrapper<T>(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> {
class _DoubleLink<Link extends _DoubleLink<Link>> {
Link _previousLink;
Link _nextLink;

Expand Down
6 changes: 2 additions & 4 deletions sdk/lib/convert/ascii.dart
Expand Up @@ -69,8 +69,7 @@ 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>>
implements ChunkedConverter<String, List<int>, String, List<int>> {
class _UnicodeSubsetEncoder extends Converter<String, List<int>> {
final int _subsetMask;

const _UnicodeSubsetEncoder(this._subsetMask);
Expand Down Expand Up @@ -155,8 +154,7 @@ 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>
implements ChunkedConverter<List<int>, String, List<int>, String> {
abstract class _UnicodeSubsetDecoder extends Converter<List<int>, String> {
final bool _allowInvalid;
final int _subsetMask;

Expand Down
6 changes: 2 additions & 4 deletions sdk/lib/convert/base64.dart
Expand Up @@ -204,8 +204,7 @@ class Base64Codec extends Codec<List<int>, String> {
*
* The results are ASCII strings using a restricted alphabet.
*/
class Base64Encoder extends Converter<List<int>, String>
implements ChunkedConverter<List<int>, String, List<int>, String> {
class Base64Encoder extends Converter<List<int>, String> {

final bool _urlSafe;

Expand Down Expand Up @@ -476,8 +475,7 @@ class _Utf8Base64EncoderSink extends _Base64EncoderSink {
*
* The encoding is required to be properly padded.
*/
class Base64Decoder extends Converter<String, List<int>>
implements ChunkedConverter<String, List<int>, String, List<int>> {
class Base64Decoder extends Converter<String, List<int>> {

const Base64Decoder();

Expand Down
10 changes: 0 additions & 10 deletions sdk/lib/convert/chunked_conversion.dart
Expand Up @@ -6,16 +6,6 @@ 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: 1 addition & 2 deletions sdk/lib/convert/converter.dart
Expand Up @@ -50,8 +50,7 @@ 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>
implements ChunkedConverter<S, T, S, T> {
class _FusedConverter<S, M, T> extends Converter<S, T> {
final Converter<S, M> _first;
final Converter<M, T> _second;

Expand Down
3 changes: 1 addition & 2 deletions sdk/lib/convert/html_escape.dart
Expand Up @@ -151,8 +151,7 @@ class HtmlEscapeMode {
* found to be easier to read if greater-than is also escaped whenever
* less-than is.
*/
class HtmlEscape extends Converter<String, String>
implements ChunkedConverter<String, String, String, String> {
class HtmlEscape extends Converter<String, String> {
/** The [HtmlEscapeMode] used by the converter. */
final HtmlEscapeMode mode;

Expand Down
9 changes: 3 additions & 6 deletions sdk/lib/convert/json.dart
Expand Up @@ -156,8 +156,7 @@ class JsonCodec extends Codec<Object, String> {
/**
* This class converts JSON objects to strings.
*/
class JsonEncoder extends Converter<Object, String>
implements ChunkedConverter<Object, String, Object, String> {
class JsonEncoder extends Converter<Object, String> {
/**
* The string used for indention.
*
Expand Down Expand Up @@ -283,8 +282,7 @@ 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>>
implements ChunkedConverter<Object, List<int>, Object, List<int>> {
class JsonUtf8Encoder extends Converter<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 @@ -468,8 +466,7 @@ class _JsonUtf8EncoderSink extends ChunkedConversionSink<Object> {
/**
* This class parses JSON strings and builds the corresponding objects.
*/
class JsonDecoder extends Converter<String, Object>
implements ChunkedConverter<String, Object, String, Object> {
class JsonDecoder extends Converter<String, Object> {
final _Reviver _reviver;
/**
* Constructs a new JsonDecoder.
Expand Down
3 changes: 1 addition & 2 deletions sdk/lib/convert/line_splitter.dart
Expand Up @@ -20,8 +20,7 @@ const int _CR = 13;

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

/// Split [lines] into individual lines.
Expand Down
6 changes: 2 additions & 4 deletions sdk/lib/convert/utf.dart
Expand Up @@ -76,8 +76,7 @@ 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>>
implements ChunkedConverter<String, List<int>, String, List<int>> {
class Utf8Encoder extends Converter<String, List<int>> {
const Utf8Encoder();

/**
Expand Down Expand Up @@ -303,8 +302,7 @@ 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>
implements ChunkedConverter<List<int>, String, List<int>, String> {
class Utf8Decoder extends Converter<List<int>, String> {
final bool _allowMalformed;

/**
Expand Down
3 changes: 1 addition & 2 deletions sdk/lib/io/data_transformer.dart
Expand Up @@ -292,8 +292,7 @@ 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>>
implements ChunkedConverter<List<int>, List<int>, List<int>, List<int>> {
class ZLibEncoder extends Converter<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<File>((openedFile) => openedFile.close());
_openFuture.then((openedFile) => openedFile.close()).then((_) => _file);
}

// 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((_) {
return file.writeFrom(bytes, 0, bytes.length).then<File>((_) {
if (flush) return file.flush().then((_) => this);
return this;
}).whenComplete(file.close);
Expand Down
6 changes: 2 additions & 4 deletions sdk/lib/io/string_transformer.dart
Expand Up @@ -42,8 +42,7 @@ class SystemEncoding extends Encoding {
}
}

class _WindowsCodePageEncoder extends Converter<String, List<int>>
implements ChunkedConverter<String, List<int>, String, List<int>> {
class _WindowsCodePageEncoder extends Converter<String, List<int>> {
const _WindowsCodePageEncoder();

List<int> convert(String input) {
Expand Down Expand Up @@ -93,8 +92,7 @@ class _WindowsCodePageEncoderSink extends StringConversionSinkBase {
}
}

class _WindowsCodePageDecoder extends Converter<List<int>, String>
implements ChunkedConverter<List<int>, String, List<int>, String> {
class _WindowsCodePageDecoder extends Converter<List<int>, String> {
const _WindowsCodePageDecoder();

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

0 comments on commit e5c091e

Please sign in to comment.