[dart-pkg] Update packages
Change-Id: I376c7ee2faa4bc9089956dbc359198fa52094d88
diff --git a/args/BUILD.gn b/args/BUILD.gn
index 844bd2a..00d5247 100644
--- a/args/BUILD.gn
+++ b/args/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for args-1.2.0
+# This file is generated by importer.py for args-1.3.0
import("//build/dart/dart_library.gni")
diff --git a/args/CHANGELOG.md b/args/CHANGELOG.md
index c026ae6..8771808 100644
--- a/args/CHANGELOG.md
+++ b/args/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.3.0
+
+* Type `Command.run()`'s return value as `FutureOr<T>`.
+
## 1.2.0
* Type the `callback` parameter to `ArgParser.addOption()` as `Function` rather
diff --git a/args/lib/command_runner.dart b/args/lib/command_runner.dart
index 13b0a6e..3135dbf 100644
--- a/args/lib/command_runner.dart
+++ b/args/lib/command_runner.dart
@@ -352,10 +352,9 @@
/// Runs this command.
///
- /// This must return a `T`, a `Future<T>`, or `null`. The value is returned by
- /// [CommandRunner.runCommand]. Subclasses must explicitly declare a return
- /// type for `run()`, and may not use `void` if `T` is defined.
- run() {
+ /// The return value is wrapped in a `Future` if necessary and returned by
+ /// [CommandRunner.runCommand].
+ FutureOr<T> run() {
throw new UnimplementedError("Leaf command $this must implement run().");
}
diff --git a/args/pubspec.yaml b/args/pubspec.yaml
index 42a4718..2c5fa59 100644
--- a/args/pubspec.yaml
+++ b/args/pubspec.yaml
@@ -1,5 +1,5 @@
name: args
-version: 1.2.0
+version: 1.3.0
author: "Dart Team <misc@dartlang.org>"
homepage: https://github.com/dart-lang/args
description: >
diff --git a/async/BUILD.gn b/async/BUILD.gn
index 955e6c9..679445c 100644
--- a/async/BUILD.gn
+++ b/async/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for async-2.0.3
+# This file is generated by importer.py for async-2.0.4
import("//build/dart/dart_library.gni")
diff --git a/async/CHANGELOG.md b/async/CHANGELOG.md
index 03fff02..2577503 100644
--- a/async/CHANGELOG.md
+++ b/async/CHANGELOG.md
@@ -1,3 +1,13 @@
+## 2.0.4
+
+* Add support for Dart 2.0 library changes to Stream and StreamTransformer.
+ Changed classes that implement `StreamTransformer` to extend
+ `StreamTransformerBase`, and changed signatures of `firstWhere`, `lastWhere`,
+ and `singleWhere` on classes extending `Stream`. See
+ also [issue 31847][sdk#31847].
+
+ [sdk#31847]: https://github.com/dart-lang/sdk/issues/31847
+
## 2.0.3
* Fix a bug in `StreamQueue.startTransaction()` and related methods when
diff --git a/async/lib/src/result/capture_transformer.dart b/async/lib/src/result/capture_transformer.dart
index 71e8a00..5933f0c 100644
--- a/async/lib/src/result/capture_transformer.dart
+++ b/async/lib/src/result/capture_transformer.dart
@@ -11,7 +11,7 @@
///
/// The result of the transformation is a stream of [Result] values and no
/// error events. Exposed by [Result.captureStream].
-class CaptureStreamTransformer<T> implements StreamTransformer<T, Result<T>> {
+class CaptureStreamTransformer<T> extends StreamTransformerBase<T, Result<T>> {
const CaptureStreamTransformer();
Stream<Result<T>> bind(Stream<T> source) {
diff --git a/async/lib/src/result/release_transformer.dart b/async/lib/src/result/release_transformer.dart
index fc9278d..01865cc 100644
--- a/async/lib/src/result/release_transformer.dart
+++ b/async/lib/src/result/release_transformer.dart
@@ -8,7 +8,7 @@
import 'release_sink.dart';
/// A transformer that releases result events as data and error events.
-class ReleaseStreamTransformer<T> implements StreamTransformer<Result<T>, T> {
+class ReleaseStreamTransformer<T> extends StreamTransformerBase<Result<T>, T> {
const ReleaseStreamTransformer();
Stream<T> bind(Stream<Result<T>> source) {
diff --git a/async/lib/src/single_subscription_transformer.dart b/async/lib/src/single_subscription_transformer.dart
index fcd6b06..f590860 100644
--- a/async/lib/src/single_subscription_transformer.dart
+++ b/async/lib/src/single_subscription_transformer.dart
@@ -13,7 +13,7 @@
/// This also casts the source stream's events to type `T`. If the cast fails,
/// the result stream will emit a [CastError]. This behavior is deprecated, and
/// should not be relied upon.
-class SingleSubscriptionTransformer<S, T> implements StreamTransformer<S, T> {
+class SingleSubscriptionTransformer<S, T> extends StreamTransformerBase<S, T> {
const SingleSubscriptionTransformer();
Stream<T> bind(Stream<S> stream) {
diff --git a/async/lib/src/typed/stream.dart b/async/lib/src/typed/stream.dart
index a467115..b3b0513 100644
--- a/async/lib/src/typed/stream.dart
+++ b/async/lib/src/typed/stream.dart
@@ -53,14 +53,18 @@
Stream<S> expand<S>(Iterable<S> convert(T value)) =>
_stream.expand(_validateType(convert));
- Future firstWhere(bool test(T element), {Object defaultValue()}) =>
- _stream.firstWhere(_validateType(test), defaultValue: defaultValue);
+ Future<T> firstWhere(bool test(T element),
+ {Object defaultValue(), T orElse()}) =>
+ _stream.firstWhere(_validateType(test),
+ defaultValue: defaultValue, orElse: orElse);
- Future lastWhere(bool test(T element), {Object defaultValue()}) =>
- _stream.lastWhere(_validateType(test), defaultValue: defaultValue);
+ Future<T> lastWhere(bool test(T element),
+ {Object defaultValue(), T orElse()}) =>
+ _stream.lastWhere(_validateType(test),
+ defaultValue: defaultValue, orElse: orElse);
- Future<T> singleWhere(bool test(T element)) async =>
- (await _stream.singleWhere(_validateType(test))) as T;
+ Future<T> singleWhere(bool test(T element), {T orElse()}) async =>
+ await _stream.singleWhere(_validateType(test), orElse: orElse);
Future<S> fold<S>(S initialValue, S combine(S previous, T element)) =>
_stream.fold(
diff --git a/async/lib/src/typed_stream_transformer.dart b/async/lib/src/typed_stream_transformer.dart
index 98d5e70..cb63311 100644
--- a/async/lib/src/typed_stream_transformer.dart
+++ b/async/lib/src/typed_stream_transformer.dart
@@ -20,7 +20,7 @@
/// A wrapper that coerces the type of the stream returned by an inner
/// transformer.
-class _TypeSafeStreamTransformer<S, T> implements StreamTransformer<S, T> {
+class _TypeSafeStreamTransformer<S, T> extends StreamTransformerBase<S, T> {
final StreamTransformer _inner;
_TypeSafeStreamTransformer(this._inner);
diff --git a/async/pubspec.yaml b/async/pubspec.yaml
index 3fd3bbb..3b9bac4 100644
--- a/async/pubspec.yaml
+++ b/async/pubspec.yaml
@@ -1,10 +1,10 @@
name: async
-version: 2.0.3
+version: 2.0.4
author: Dart Team <misc@dartlang.org>
description: Utility functions and classes related to the 'dart:async' library.
homepage: https://www.github.com/dart-lang/async
environment:
- sdk: ">=2.0.0-dev.15.0 <2.0.0"
+ sdk: ">=2.0.0-dev.23.0 <2.0.0"
dependencies:
collection: "^1.5.0"
dev_dependencies:
diff --git a/file/BUILD.gn b/file/BUILD.gn
index fb7bf10..b9da950 100644
--- a/file/BUILD.gn
+++ b/file/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for file-2.3.5
+# This file is generated by importer.py for file-2.3.6
import("//build/dart/dart_library.gni")
diff --git a/file/CHANGELOG.md b/file/CHANGELOG.md
index d8719f5..8d35ce2 100644
--- a/file/CHANGELOG.md
+++ b/file/CHANGELOG.md
@@ -1,3 +1,7 @@
+#### 2.3.6
+
+* Relax sdk upper bound constraint to '<2.0.0' to allow 'edge' dart sdk use.
+
#### 2.3.5
* Fix internal use of a cast which fails on Dart 2.0 .
diff --git a/file/lib/src/backends/chroot/chroot_file_system.dart b/file/lib/src/backends/chroot/chroot_file_system.dart
index 963832a..54a4892 100644
--- a/file/lib/src/backends/chroot/chroot_file_system.dart
+++ b/file/lib/src/backends/chroot/chroot_file_system.dart
@@ -121,7 +121,7 @@
assert(() {
p.Context ctx = delegate.path;
return ctx.isAbsolute(value) && value == ctx.canonicalize(value);
- });
+ }());
_cwd = value;
}
@@ -232,7 +232,7 @@
if (resolve) {
localPath = _resolve(localPath, followLinks: followLinks);
} else {
- assert(() => path.isAbsolute(localPath));
+ assert(path.isAbsolute(localPath));
}
return '$root$localPath';
}
diff --git a/file/lib/src/backends/memory/memory_directory.dart b/file/lib/src/backends/memory/memory_directory.dart
index da41c96..eaf6875 100644
--- a/file/lib/src/backends/memory/memory_directory.dart
+++ b/file/lib/src/backends/memory/memory_directory.dart
@@ -71,7 +71,7 @@
Future<Directory> rename(String newPath) async => renameSync(newPath);
@override
- Directory renameSync(String newPath) => _renameSync(
+ Directory renameSync(String newPath) => _renameSync<_DirectoryNode>(
newPath,
validateOverwriteExistingEntity: (_DirectoryNode existingNode) {
if (existingNode.children.isNotEmpty) {
diff --git a/file/lib/src/backends/memory/memory_file_system_entity.dart b/file/lib/src/backends/memory/memory_file_system_entity.dart
index dfe23f9..349e03b 100644
--- a/file/lib/src/backends/memory/memory_file_system_entity.dart
+++ b/file/lib/src/backends/memory/memory_file_system_entity.dart
@@ -207,9 +207,9 @@
/// If [checkType] is specified, it will be used to validate that the file
/// system entity that exists at [path] is of the expected type. By default,
/// [_defaultCheckType] is used to perform this validation.
- FileSystemEntity _renameSync(
+ FileSystemEntity _renameSync<T extends _Node>(
String newPath, {
- _RenameOverwriteValidator<dynamic> validateOverwriteExistingEntity,
+ _RenameOverwriteValidator<T> validateOverwriteExistingEntity,
bool followTailLink: false,
_TypeChecker checkType,
}) {
diff --git a/file/pubspec.yaml b/file/pubspec.yaml
index 7484c4b..3cedcab 100644
--- a/file/pubspec.yaml
+++ b/file/pubspec.yaml
@@ -1,5 +1,5 @@
name: file
-version: 2.3.5
+version: 2.3.6
authors:
- Matan Lurey <matanl@google.com>
- Yegor Jbanov <yjbanov@google.com>
@@ -16,4 +16,4 @@
test: ^0.12.18
environment:
- sdk: '>=1.19.0 <2.0.0-dev.infinity'
+ sdk: '>=1.19.0 <2.0.0'
diff --git a/io/.travis.yml b/io/.travis.yml
index ccd3815..205a404 100644
--- a/io/.travis.yml
+++ b/io/.travis.yml
@@ -1,20 +1,18 @@
language: dart
-sudo: false
+
dart:
- dev
- stable
-cache:
- directories:
- - $HOME/.pub-cache
+
dart_task:
- - test: --platform vm
- install_dartium: true
+ - test
- dartanalyzer
- dartfmt
-matrix:
- # Only run dartfmt checks with stable.
- exclude:
- - dart: dev
- dart_task: dartfmt
- - dart: dev
- dart_task: dartanalyzer
+
+# Only building master means that we don't run two builds for each pull request.
+branches:
+ only: [master]
+
+cache:
+ directories:
+ - $HOME/.pub-cache
diff --git a/io/BUILD.gn b/io/BUILD.gn
index 3f5320d..442776f 100644
--- a/io/BUILD.gn
+++ b/io/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for io-0.3.1
+# This file is generated by importer.py for io-0.3.2+1
import("//build/dart/dart_library.gni")
diff --git a/io/CHANGELOG.md b/io/CHANGELOG.md
index c2565ea..93ca915 100644
--- a/io/CHANGELOG.md
+++ b/io/CHANGELOG.md
@@ -1,3 +1,23 @@
+## 0.3.2+1
+
+* `ansi.dart`
+
+ * The "forScript" code paths now ignore the `ansiOutputEnabled` value. Affects
+ the `escapeForScript` property on `AnsiCode` and the `wrap` and `wrapWith`
+ functions when `forScript` is true.
+
+## 0.3.2
+
+* `ansi.dart`
+
+ * Added `forScript` named argument to top-level `wrapWith` function.
+
+ * `AnsiCode`
+
+ * Added `String get escapeForScript` property.
+
+ * Added `forScript` named argument to `wrap` function.
+
## 0.3.1
- Added `SharedStdIn.nextLine` (similar to `readLineSync`) and `lines`:
diff --git a/io/example/ansi_code_example.dart b/io/example/ansi_code_example.dart
index 255bd72..e622f03 100644
--- a/io/example/ansi_code_example.dart
+++ b/io/example/ansi_code_example.dart
@@ -7,17 +7,19 @@
import 'package:io/ansi.dart';
/// Prints a sample of all of the `AnsiCode` values.
-void main() {
+void main(List<String> args) {
+ final forScript = args.contains('--for-script');
+
if (!ansiOutputEnabled) {
print('`ansiOutputEnabled` is `false`.');
print("Don't expect pretty output.");
}
- _preview('Foreground', foregroundColors);
- _preview('Background', backgroundColors);
- _preview('Styles', styles);
+ _preview('Foreground', foregroundColors, forScript);
+ _preview('Background', backgroundColors, forScript);
+ _preview('Styles', styles, forScript);
}
-void _preview(String name, List<AnsiCode> values) {
+void _preview(String name, List<AnsiCode> values, bool forScript) {
print('');
final longest = values.map((ac) => ac.name.length).reduce(max);
@@ -26,6 +28,6 @@
final header =
"${code.name.padRight(longest)} ${code.code.toString().padLeft(3)}";
- print("$header: ${code.wrap('Sample')}");
+ print("$header: ${code.wrap('Sample', forScript: forScript)}");
}
}
diff --git a/io/lib/src/ansi_code.dart b/io/lib/src/ansi_code.dart
index beee945..8b9c3a1 100644
--- a/io/lib/src/ansi_code.dart
+++ b/io/lib/src/ansi_code.dart
@@ -5,6 +5,9 @@
import 'dart:async';
import 'dart:io' as io;
+const _ansiEscapeLiteral = '\x1B';
+const _ansiEscapeForScript = '\\033';
+
/// Whether formatted ANSI output is enabled for [wrapWith] and [AnsiCode.wrap].
///
/// By default, returns `true` if both `stdout.supportsAnsiEscapes` and
@@ -18,6 +21,13 @@
Zone.current[AnsiCode] as bool ??
(io.stdout.supportsAnsiEscapes && io.stderr.supportsAnsiEscapes);
+/// Returns `true` no formatting is required for [input].
+bool _isNoop(bool skip, String input, bool forScript) =>
+ skip ||
+ input == null ||
+ input.isEmpty ||
+ !((forScript ?? false) || ansiOutputEnabled);
+
/// Allows overriding [ansiOutputEnabled] to [enableAnsiOutput] for the code run
/// within [body].
T overrideAnsiOutput<T>(bool enableAnsiOutput, T body()) =>
@@ -66,21 +76,31 @@
const AnsiCode._(this.name, this.type, this.code, this.reset);
/// Represents the value escaped for use in terminal output.
- String get escape => "\x1B[${code}m";
+ String get escape => "$_ansiEscapeLiteral[${code}m";
+
+ /// Represents the value as an unescaped literal suitable for scripts.
+ String get escapeForScript => "$_ansiEscapeForScript[${code}m";
+
+ String _escapeValue({bool forScript: false}) {
+ forScript ??= false;
+ return forScript ? escapeForScript : escape;
+ }
/// Wraps [value] with the [escape] value for this code, followed by
/// [resetAll].
///
+ /// If [forScript] is `true`, the return value is an unescaped literal. The
+ /// value of [ansiOutputEnabled] is also ignored.
+ ///
/// Returns `value` unchanged if
/// * [value] is `null` or empty
- /// * [ansiOutputEnabled] is `false`
+ /// * both [ansiOutputEnabled] and [forScript] are `false`.
/// * [type] is [AnsiCodeType.reset]
- String wrap(String value) => (ansiOutputEnabled &&
- type != AnsiCodeType.reset &&
- value != null &&
- value.isNotEmpty)
- ? "$escape$value${reset.escape}"
- : value;
+ String wrap(String value, {bool forScript: false}) =>
+ _isNoop(type == AnsiCodeType.reset, value, forScript)
+ ? value
+ : "${_escapeValue(forScript: forScript)}$value"
+ "${reset._escapeValue(forScript: forScript)}";
@override
String toString() => "$name ${type._name} ($code)";
@@ -88,20 +108,25 @@
/// Returns a [String] formatted with [codes].
///
+/// If [forScript] is `true`, the return value is an unescaped literal. The
+/// value of [ansiOutputEnabled] is also ignored.
+///
/// Returns `value` unchanged if
/// * [value] is `null` or empty.
-/// * [ansiOutputEnabled] is `false`.
+/// * both [ansiOutputEnabled] and [forScript] are `false`.
/// * [codes] is empty.
///
/// Throws an [ArgumentError] if
/// * [codes] contains more than one value of type [AnsiCodeType.foreground].
/// * [codes] contains more than one value of type [AnsiCodeType.background].
/// * [codes] contains any value of type [AnsiCodeType.reset].
-String wrapWith(String value, Iterable<AnsiCode> codes) {
+String wrapWith(String value, Iterable<AnsiCode> codes,
+ {bool forScript: false}) {
+ forScript ??= false;
// Eliminate duplicates
final myCodes = codes.toSet();
- if (myCodes.isEmpty || !ansiOutputEnabled || value == null || value.isEmpty) {
+ if (_isNoop(myCodes.isEmpty, value, forScript)) {
return value;
}
@@ -130,8 +155,10 @@
}
final sortedCodes = myCodes.map((ac) => ac.code).toList()..sort();
+ final escapeValue = forScript ? _ansiEscapeForScript : _ansiEscapeLiteral;
- return "\x1B[${sortedCodes.join(';')}m$value${resetAll.escape}";
+ return "$escapeValue[${sortedCodes.join(';')}m$value"
+ "${resetAll._escapeValue(forScript: forScript)}";
}
//
diff --git a/io/pubspec.yaml b/io/pubspec.yaml
index 78ac7de..0e2818e 100644
--- a/io/pubspec.yaml
+++ b/io/pubspec.yaml
@@ -1,7 +1,7 @@
name: io
description: >
Utilities for the Dart VM Runtime.
-version: 0.3.1
+version: 0.3.2+1
author: Dart Team <misc@dartlang.org>
homepage: https://github.com/dart-lang/io
diff --git a/meta/BUILD.gn b/meta/BUILD.gn
index 995764e..68d3ad5 100644
--- a/meta/BUILD.gn
+++ b/meta/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for meta-1.1.1
+# This file is generated by importer.py for meta-1.1.2
import("//build/dart/dart_library.gni")
diff --git a/meta/CHANGELOG.md b/meta/CHANGELOG.md
index b44eb57..3f893d4 100644
--- a/meta/CHANGELOG.md
+++ b/meta/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.1.2
+
+* Rollback SDK constraint update for 2.0.0. No longer needed.
+
## 1.1.1
* Update SDK constraint to be 2.0.0 dev friendly.
diff --git a/meta/pubspec.yaml b/meta/pubspec.yaml
index 50f7b1b..c46d798 100644
--- a/meta/pubspec.yaml
+++ b/meta/pubspec.yaml
@@ -1,10 +1,10 @@
name: meta
-version: 1.1.1
+version: 1.1.2
author: Dart Team <misc@dartlang.org>
-homepage: http://www.dartlang.org
+homepage: https://github.com/dart-lang/sdk/tree/master/pkg/meta
description: >
This library contains the definitions of annotations that provide additional
semantic information about the program being annotated. These annotations are
intended to be used by tools to provide a better user experience.
environment:
- sdk: '>=1.12.0 <2.0.0-dev.infinity'
+ sdk: '>=1.12.0 <2.0.0'
diff --git a/mime/.travis.yml b/mime/.travis.yml
index da58f76..8b6048d 100644
--- a/mime/.travis.yml
+++ b/mime/.travis.yml
@@ -2,7 +2,6 @@
sudo: false
dart:
- dev
- - stable
dart_task:
- test
- dartfmt
diff --git a/mime/BUILD.gn b/mime/BUILD.gn
index 5d44fd1..56cd92c 100644
--- a/mime/BUILD.gn
+++ b/mime/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for mime-0.9.5
+# This file is generated by importer.py for mime-0.9.6
import("//build/dart/dart_library.gni")
diff --git a/mime/CHANGELOG.md b/mime/CHANGELOG.md
index 043c412..1e3f9a1 100644
--- a/mime/CHANGELOG.md
+++ b/mime/CHANGELOG.md
@@ -1,3 +1,10 @@
+# 0.9.6
+
+* Updates to support Dart 2.0 core library changes (wave
+ 2.2). See [issue 31847][sdk#31847] for details.
+
+ [sdk#31847]: https://github.com/dart-lang/sdk/issues/31847
+
# 0.9.5
* Add support for the WebAssembly format.
diff --git a/mime/lib/src/mime_multipart_transformer.dart b/mime/lib/src/mime_multipart_transformer.dart
index ba1a5ae..a71e6d9 100644
--- a/mime/lib/src/mime_multipart_transformer.dart
+++ b/mime/lib/src/mime_multipart_transformer.dart
@@ -30,7 +30,7 @@
* of them streaming the multipart data.
*/
class MimeMultipartTransformer
- implements StreamTransformer<List<int>, MimeMultipart> {
+ extends StreamTransformerBase<List<int>, MimeMultipart> {
final List<int> _boundary;
/**
diff --git a/mime/pubspec.yaml b/mime/pubspec.yaml
index 75f0457..1811771 100644
--- a/mime/pubspec.yaml
+++ b/mime/pubspec.yaml
@@ -1,9 +1,9 @@
name: mime
-version: 0.9.5
+version: 0.9.6
author: Dart Team <misc@dartlang.org>
description: Helper-package for working with MIME.
homepage: https://www.github.com/dart-lang/mime
environment:
- sdk: '>=1.8.3 <2.0.0'
+ sdk: '>=2.0.0-dev.20.0 <2.0.0'
dev_dependencies:
test: '^0.12.0'
diff --git a/mockito/.idea/libraries/Dart_Packages.xml b/mockito/.idea/libraries/Dart_Packages.xml
deleted file mode 100644
index e078a23..0000000
--- a/mockito/.idea/libraries/Dart_Packages.xml
+++ /dev/null
@@ -1,404 +0,0 @@
-<component name="libraryTable">
- <library name="Dart Packages" type="DartPackagesLibraryType">
- <properties>
- <option name="packageNameToDirsMap">
- <entry key="analyzer">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/analyzer-0.30.0+4/lib" />
- </list>
- </value>
- </entry>
- <entry key="args">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/args-1.0.2/lib" />
- </list>
- </value>
- </entry>
- <entry key="async">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/async-1.13.3/lib" />
- </list>
- </value>
- </entry>
- <entry key="barback">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/barback-0.15.2+13/lib" />
- </list>
- </value>
- </entry>
- <entry key="boolean_selector">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/boolean_selector-1.0.2/lib" />
- </list>
- </value>
- </entry>
- <entry key="charcode">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/charcode-1.1.1/lib" />
- </list>
- </value>
- </entry>
- <entry key="cli_util">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/cli_util-0.1.2+1/lib" />
- </list>
- </value>
- </entry>
- <entry key="collection">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/collection-1.14.3/lib" />
- </list>
- </value>
- </entry>
- <entry key="convert">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/convert-2.0.1/lib" />
- </list>
- </value>
- </entry>
- <entry key="crypto">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/crypto-2.0.2+1/lib" />
- </list>
- </value>
- </entry>
- <entry key="csslib">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/csslib-0.14.1/lib" />
- </list>
- </value>
- </entry>
- <entry key="front_end">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/front_end-0.1.0-alpha.4.1/lib" />
- </list>
- </value>
- </entry>
- <entry key="glob">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/glob-1.1.5/lib" />
- </list>
- </value>
- </entry>
- <entry key="html">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/html-0.13.2/lib" />
- </list>
- </value>
- </entry>
- <entry key="http">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/http-0.11.3+16/lib" />
- </list>
- </value>
- </entry>
- <entry key="http_multi_server">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/http_multi_server-2.0.4/lib" />
- </list>
- </value>
- </entry>
- <entry key="http_parser">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.1/lib" />
- </list>
- </value>
- </entry>
- <entry key="io">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/io-0.3.0/lib" />
- </list>
- </value>
- </entry>
- <entry key="isolate">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/isolate-1.1.0/lib" />
- </list>
- </value>
- </entry>
- <entry key="js">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/js-0.6.1/lib" />
- </list>
- </value>
- </entry>
- <entry key="kernel">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/kernel-0.3.0-alpha.1.1/lib" />
- </list>
- </value>
- </entry>
- <entry key="logging">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/logging-0.11.3+1/lib" />
- </list>
- </value>
- </entry>
- <entry key="matcher">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.1+4/lib" />
- </list>
- </value>
- </entry>
- <entry key="meta">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/meta-1.1.2/lib" />
- </list>
- </value>
- </entry>
- <entry key="mime">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/mime-0.9.3/lib" />
- </list>
- </value>
- </entry>
- <entry key="node_preamble">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/node_preamble-1.4.0/lib" />
- </list>
- </value>
- </entry>
- <entry key="package_config">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/package_config-1.0.3/lib" />
- </list>
- </value>
- </entry>
- <entry key="package_resolver">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/package_resolver-1.0.2/lib" />
- </list>
- </value>
- </entry>
- <entry key="path">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/path-1.4.2/lib" />
- </list>
- </value>
- </entry>
- <entry key="plugin">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/plugin-0.2.0+2/lib" />
- </list>
- </value>
- </entry>
- <entry key="pool">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/pool-1.3.3/lib" />
- </list>
- </value>
- </entry>
- <entry key="pub_semver">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/pub_semver-1.3.2/lib" />
- </list>
- </value>
- </entry>
- <entry key="shelf">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/shelf-0.7.0/lib" />
- </list>
- </value>
- </entry>
- <entry key="shelf_packages_handler">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/shelf_packages_handler-1.0.3/lib" />
- </list>
- </value>
- </entry>
- <entry key="shelf_static">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/shelf_static-0.2.6/lib" />
- </list>
- </value>
- </entry>
- <entry key="shelf_web_socket">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/shelf_web_socket-0.2.2/lib" />
- </list>
- </value>
- </entry>
- <entry key="source_map_stack_trace">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/source_map_stack_trace-1.1.4/lib" />
- </list>
- </value>
- </entry>
- <entry key="source_maps">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/source_maps-0.10.4/lib" />
- </list>
- </value>
- </entry>
- <entry key="source_span">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/source_span-1.4.0/lib" />
- </list>
- </value>
- </entry>
- <entry key="stack_trace">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.8.2/lib" />
- </list>
- </value>
- </entry>
- <entry key="stream_channel">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/stream_channel-1.6.2/lib" />
- </list>
- </value>
- </entry>
- <entry key="string_scanner">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.0.2/lib" />
- </list>
- </value>
- </entry>
- <entry key="term_glyph">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.0.0/lib" />
- </list>
- </value>
- </entry>
- <entry key="test">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/test-0.12.26/lib" />
- </list>
- </value>
- </entry>
- <entry key="typed_data">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/typed_data-1.1.5/lib" />
- </list>
- </value>
- </entry>
- <entry key="utf">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/utf-0.9.0+3/lib" />
- </list>
- </value>
- </entry>
- <entry key="watcher">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/watcher-0.9.7+4/lib" />
- </list>
- </value>
- </entry>
- <entry key="web_socket_channel">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/web_socket_channel-1.0.6/lib" />
- </list>
- </value>
- </entry>
- <entry key="yaml">
- <value>
- <list>
- <option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/yaml-2.1.13/lib" />
- </list>
- </value>
- </entry>
- </option>
- </properties>
- <CLASSES>
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/analyzer-0.30.0+4/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/args-1.0.2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/async-1.13.3/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/barback-0.15.2+13/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/boolean_selector-1.0.2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/charcode-1.1.1/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/cli_util-0.1.2+1/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/collection-1.14.3/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/convert-2.0.1/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/crypto-2.0.2+1/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/csslib-0.14.1/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/front_end-0.1.0-alpha.4.1/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/glob-1.1.5/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/html-0.13.2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/http-0.11.3+16/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/http_multi_server-2.0.4/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.1/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/io-0.3.0/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/isolate-1.1.0/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/js-0.6.1/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/kernel-0.3.0-alpha.1.1/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/logging-0.11.3+1/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.1+4/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/meta-1.1.2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/mime-0.9.3/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/node_preamble-1.4.0/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/package_config-1.0.3/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/package_resolver-1.0.2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/path-1.4.2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/plugin-0.2.0+2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/pool-1.3.3/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/pub_semver-1.3.2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/shelf-0.7.0/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/shelf_packages_handler-1.0.3/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/shelf_static-0.2.6/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/shelf_web_socket-0.2.2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/source_map_stack_trace-1.1.4/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/source_maps-0.10.4/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/source_span-1.4.0/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.8.2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/stream_channel-1.6.2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.0.2/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.0.0/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/test-0.12.26/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/typed_data-1.1.5/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/utf-0.9.0+3/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/watcher-0.9.7+4/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/web_socket_channel-1.0.6/lib" />
- <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/yaml-2.1.13/lib" />
- </CLASSES>
- <JAVADOC />
- <SOURCES />
- </library>
-</component>
\ No newline at end of file
diff --git a/mockito/.idea/libraries/Dart_SDK.xml b/mockito/.idea/libraries/Dart_SDK.xml
deleted file mode 100644
index 2255dbd..0000000
--- a/mockito/.idea/libraries/Dart_SDK.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<component name="libraryTable">
- <library name="Dart SDK">
- <CLASSES>
- <root url="file:///usr/local/opt/dart/libexec/lib/async" />
- <root url="file:///usr/local/opt/dart/libexec/lib/collection" />
- <root url="file:///usr/local/opt/dart/libexec/lib/convert" />
- <root url="file:///usr/local/opt/dart/libexec/lib/core" />
- <root url="file:///usr/local/opt/dart/libexec/lib/developer" />
- <root url="file:///usr/local/opt/dart/libexec/lib/html" />
- <root url="file:///usr/local/opt/dart/libexec/lib/indexed_db" />
- <root url="file:///usr/local/opt/dart/libexec/lib/io" />
- <root url="file:///usr/local/opt/dart/libexec/lib/isolate" />
- <root url="file:///usr/local/opt/dart/libexec/lib/js" />
- <root url="file:///usr/local/opt/dart/libexec/lib/js_util" />
- <root url="file:///usr/local/opt/dart/libexec/lib/math" />
- <root url="file:///usr/local/opt/dart/libexec/lib/mirrors" />
- <root url="file:///usr/local/opt/dart/libexec/lib/svg" />
- <root url="file:///usr/local/opt/dart/libexec/lib/typed_data" />
- <root url="file:///usr/local/opt/dart/libexec/lib/web_audio" />
- <root url="file:///usr/local/opt/dart/libexec/lib/web_gl" />
- <root url="file:///usr/local/opt/dart/libexec/lib/web_sql" />
- </CLASSES>
- <JAVADOC />
- <SOURCES />
- </library>
-</component>
\ No newline at end of file
diff --git a/mockito/.idea/misc.xml b/mockito/.idea/misc.xml
deleted file mode 100644
index 639900d..0000000
--- a/mockito/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="ProjectRootManager">
- <output url="file://$PROJECT_DIR$/out" />
- </component>
-</project>
\ No newline at end of file
diff --git a/mockito/.idea/modules.xml b/mockito/.idea/modules.xml
deleted file mode 100644
index 8b984f4..0000000
--- a/mockito/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="ProjectModuleManager">
- <modules>
- <module fileurl="file://$PROJECT_DIR$/dart-mockito.iml" filepath="$PROJECT_DIR$/dart-mockito.iml" />
- </modules>
- </component>
-</project>
\ No newline at end of file
diff --git a/mockito/.idea/vcs.xml b/mockito/.idea/vcs.xml
deleted file mode 100644
index 35eb1ddf..0000000
--- a/mockito/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="VcsDirectoryMappings">
- <mapping directory="" vcs="Git" />
- </component>
-</project>
\ No newline at end of file
diff --git a/mockito/.idea/workspace.xml b/mockito/.idea/workspace.xml
deleted file mode 100644
index 7b6e795..0000000
--- a/mockito/.idea/workspace.xml
+++ /dev/null
@@ -1,341 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="ChangeListManager">
- <list default="true" id="7d90fd74-c951-4612-a7f4-109d6fb83fc5" name="Default" comment="">
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/mockito.dart" afterPath="$PROJECT_DIR$/lib/mockito.dart" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/src/invocation_matcher.dart" afterPath="$PROJECT_DIR$/lib/src/invocation_matcher.dart" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pubspec.yaml" afterPath="$PROJECT_DIR$/pubspec.yaml" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/mockito_test.dart" afterPath="$PROJECT_DIR$/test/mockito_test.dart" />
- </list>
- <ignored path="$PROJECT_DIR$/out/" />
- <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
- <option name="TRACKING_ENABLED" value="true" />
- <option name="SHOW_DIALOG" value="false" />
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
- <option name="LAST_RESOLUTION" value="IGNORE" />
- </component>
- <component name="FileEditorManager">
- <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
- <file leaf-file-name="mockito_test.dart" pinned="false" current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/test/mockito_test.dart">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="321">
- <caret line="297" column="65" lean-forward="false" selection-start-line="297" selection-start-column="65" selection-end-line="297" selection-end-column="65" />
- <folding>
- <element signature="e#0#33800#0" expanded="true" />
- </folding>
- </state>
- </provider>
- </entry>
- </file>
- <file leaf-file-name="mock.dart" pinned="false" current-in-tab="true">
- <entry file="file://$PROJECT_DIR$/lib/src/mock.dart">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="201">
- <caret line="573" column="6" lean-forward="false" selection-start-line="573" selection-start-column="2" selection-end-line="573" selection-end-column="6" />
- <folding>
- <element signature="e#0#25821#0" expanded="true" />
- </folding>
- </state>
- </provider>
- </entry>
- </file>
- <file leaf-file-name="pubspec.yaml" pinned="false" current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/pubspec.yaml">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="195">
- <caret line="13" column="26" lean-forward="false" selection-start-line="13" selection-start-column="26" selection-end-line="13" selection-end-column="26" />
- <folding />
- </state>
- </provider>
- </entry>
- </file>
- <file leaf-file-name="invocation_matcher.dart" pinned="false" current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/lib/src/invocation_matcher.dart">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="210">
- <caret line="119" column="48" lean-forward="false" selection-start-line="119" selection-start-column="48" selection-end-line="119" selection-end-column="48" />
- <folding />
- </state>
- </provider>
- </entry>
- </file>
- </leaf>
- </component>
- <component name="FindInProjectRecents">
- <findStrings>
- <find>argThat</find>
- <find>typed</find>
- </findStrings>
- </component>
- <component name="Git.Settings">
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
- </component>
- <component name="IdeDocumentHistory">
- <option name="CHANGED_PATHS">
- <list>
- <option value="$PROJECT_DIR$/lib/mockito.dart" />
- <option value="$PROJECT_DIR$/pubspec.yaml" />
- <option value="$PROJECT_DIR$/lib/src/invocation_matcher.dart" />
- <option value="$PROJECT_DIR$/test/mockito_test.dart" />
- </list>
- </option>
- </component>
- <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
- <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
- <component name="JsGulpfileManager">
- <detection-done>true</detection-done>
- <sorting>DEFINITION_ORDER</sorting>
- </component>
- <component name="ProjectFrameBounds" fullScreen="true">
- <option name="width" value="1680" />
- <option name="height" value="1050" />
- </component>
- <component name="ProjectLevelVcsManager">
- <ConfirmationsSetting value="1" id="Add" />
- </component>
- <component name="ProjectView">
- <navigator currentView="ProjectPane" proportions="" version="1">
- <flattenPackages />
- <showMembers />
- <showModules />
- <showLibraryContents />
- <hideEmptyPackages />
- <abbreviatePackageNames />
- <autoscrollToSource />
- <autoscrollFromSource />
- <sortByType />
- <manualOrder />
- <foldersAlwaysOnTop value="true" />
- </navigator>
- <panes>
- <pane id="Scratches" />
- <pane id="PackagesPane" />
- <pane id="ProjectPane">
- <subPane>
- <expand>
- <path>
- <item name="dart-mockito" type="b2602c69:ProjectViewProjectNode" />
- <item name="dart-mockito" type="462c0819:PsiDirectoryNode" />
- </path>
- <path>
- <item name="dart-mockito" type="b2602c69:ProjectViewProjectNode" />
- <item name="dart-mockito" type="462c0819:PsiDirectoryNode" />
- <item name="lib" type="462c0819:PsiDirectoryNode" />
- </path>
- <path>
- <item name="dart-mockito" type="b2602c69:ProjectViewProjectNode" />
- <item name="dart-mockito" type="462c0819:PsiDirectoryNode" />
- <item name="lib" type="462c0819:PsiDirectoryNode" />
- <item name="src" type="462c0819:PsiDirectoryNode" />
- </path>
- <path>
- <item name="dart-mockito" type="b2602c69:ProjectViewProjectNode" />
- <item name="dart-mockito" type="462c0819:PsiDirectoryNode" />
- <item name="test" type="462c0819:PsiDirectoryNode" />
- </path>
- </expand>
- <select />
- </subPane>
- </pane>
- <pane id="Scope" />
- </panes>
- </component>
- <component name="PropertiesComponent">
- <property name="WebServerToolWindowFactoryState" value="false" />
- <property name="settings.editor.selected.configurable" value="dart.settings" />
- <property name="dart.analysis.tool.window.force.activate" value="false" />
- </component>
- <component name="RunDashboard">
- <option name="ruleStates">
- <list>
- <RuleState>
- <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
- </RuleState>
- <RuleState>
- <option name="name" value="StatusDashboardGroupingRule" />
- </RuleState>
- </list>
- </option>
- </component>
- <component name="RunManager">
- <configuration default="true" type="Applet" factoryName="Applet">
- <option name="HTML_USED" value="false" />
- <option name="WIDTH" value="400" />
- <option name="HEIGHT" value="300" />
- <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
- <module />
- </configuration>
- <configuration default="true" type="Application" factoryName="Application">
- <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
- <option name="MAIN_CLASS_NAME" />
- <option name="VM_PARAMETERS" />
- <option name="PROGRAM_PARAMETERS" />
- <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
- <option name="ALTERNATIVE_JRE_PATH" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <option name="ENV_VARIABLES" />
- <option name="PASS_PARENT_ENVS" value="true" />
- <module name="" />
- <envs />
- </configuration>
- <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
- <module name="" />
- <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
- <option name="PROGRAM_PARAMETERS" />
- <predefined_log_file id="idea.log" enabled="true" />
- </configuration>
- <configuration default="true" type="Remote" factoryName="Remote">
- <option name="USE_SOCKET_TRANSPORT" value="true" />
- <option name="SERVER_MODE" value="false" />
- <option name="SHMEM_ADDRESS" value="javadebug" />
- <option name="HOST" value="localhost" />
- <option name="PORT" value="5005" />
- </configuration>
- <configuration name="<template>" type="JUnit" default="true" selected="false">
- <option name="MAIN_CLASS_NAME" />
- <option name="VM_PARAMETERS" value="-ea" />
- <option name="PARAMETERS" />
- <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
- </configuration>
- <configuration name="<template>" type="TestNG" default="true" selected="false">
- <option name="MAIN_CLASS_NAME" />
- <option name="VM_PARAMETERS" value="-ea" />
- <option name="PARAMETERS" />
- <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
- </configuration>
- </component>
- <component name="ShelveChangesManager" show_recycled="false">
- <option name="remove_strategy" value="false" />
- </component>
- <component name="TaskManager">
- <task active="true" id="Default" summary="Default task">
- <changelist id="7d90fd74-c951-4612-a7f4-109d6fb83fc5" name="Default" comment="" />
- <created>1508798659467</created>
- <option name="number" value="Default" />
- <option name="presentableId" value="Default" />
- <updated>1508798659467</updated>
- <workItem from="1508798661569" duration="33000" />
- <workItem from="1508798703310" duration="1507000" />
- </task>
- <servers />
- </component>
- <component name="TimeTrackingManager">
- <option name="totallyTimeSpent" value="1540000" />
- </component>
- <component name="ToolWindowManager">
- <frame x="0" y="0" width="1680" height="1050" extended-state="0" />
- <layout>
- <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
- <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.30706245" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
- <window_info id="Palette	" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
- <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
- <window_info id="Dart Analysis" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3285568" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
- <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
- <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
- <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
- <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
- <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.21367522" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
- <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
- <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
- <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
- <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
- <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
- <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
- <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
- <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
- <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
- <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
- <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
- </layout>
- </component>
- <component name="TypeScriptGeneratedFilesManager">
- <option name="version" value="1" />
- </component>
- <component name="VcsContentAnnotationSettings">
- <option name="myLimit" value="2678400000" />
- </component>
- <component name="XDebuggerManager">
- <breakpoint-manager />
- <watches-manager />
- </component>
- <component name="editorHistoryManager">
- <entry file="file://$PROJECT_DIR$/test/mockitoSpec.dart">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="0">
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
- <folding />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/test/mockitoSpec.dart">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="893">
- <caret line="82" column="48" lean-forward="false" selection-start-line="82" selection-start-column="48" selection-end-line="82" selection-end-column="48" />
- <folding />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/lib/src/invocation_matcher.dart">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="210">
- <caret line="119" column="48" lean-forward="false" selection-start-line="119" selection-start-column="48" selection-end-line="119" selection-end-column="48" />
- <folding />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/pubspec.yaml">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="195">
- <caret line="13" column="26" lean-forward="false" selection-start-line="13" selection-start-column="26" selection-end-line="13" selection-end-column="26" />
- <folding />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/lib/mockito.dart">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="165">
- <caret line="11" column="30" lean-forward="false" selection-start-line="11" selection-start-column="30" selection-end-line="11" selection-end-column="30" />
- <folding />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/test/mockito_test.dart">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="321">
- <caret line="297" column="65" lean-forward="false" selection-start-line="297" selection-start-column="65" selection-end-line="297" selection-end-column="65" />
- <folding>
- <element signature="e#0#33800#0" expanded="true" />
- </folding>
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/lib/src/mock.dart">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="201">
- <caret line="573" column="6" lean-forward="false" selection-start-line="573" selection-start-column="2" selection-end-line="573" selection-end-column="6" />
- <folding>
- <element signature="e#0#25821#0" expanded="true" />
- </folding>
- </state>
- </provider>
- </entry>
- </component>
- <component name="masterDetails">
- <states>
- <state key="ProjectJDKs.UI">
- <settings>
- <splitter-proportions>
- <option name="proportions">
- <list>
- <option value="0.2" />
- </list>
- </option>
- </splitter-proportions>
- </settings>
- </state>
- </states>
- </component>
-</project>
\ No newline at end of file
diff --git a/mockito/.travis.yml b/mockito/.travis.yml
index 6abd11c..103a8a0 100644
--- a/mockito/.travis.yml
+++ b/mockito/.travis.yml
@@ -1,7 +1,5 @@
language: dart
sudo: false
dart:
- - stable
- dev
- - 1.21.1
script: ./tool/travis.sh
diff --git a/mockito/BUILD.gn b/mockito/BUILD.gn
index 1d5672f..fb3578d 100644
--- a/mockito/BUILD.gn
+++ b/mockito/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for mockito-2.2.1
+# This file is generated by importer.py for mockito-2.2.3
import("//build/dart/dart_library.gni")
diff --git a/mockito/CHANGELOG.md b/mockito/CHANGELOG.md
index 4f4bc0a..0f0209e 100644
--- a/mockito/CHANGELOG.md
+++ b/mockito/CHANGELOG.md
@@ -1,3 +1,17 @@
+## 2.2.3
+
+* Avoid generlized void isses. Fixes Mockito's compliance with Dart SDK
+ 2.0.0-dev.23.0.
+
+## 2.2.2
+
+* Remove last violation of `USES_DYNAMIC_AS_BOTTOM` error. This should make
+ Mockito compatible with Dart 2 semantics.
+
+## 2.2.1
+
+* Internal fixes only (stop using comment-based generic method syntax).
+
## 2.2.0
* Add new feature to wait for an interaction: `untilCalled`. See the README for
diff --git a/mockito/dart-mockito.iml b/mockito/dart-mockito.iml
deleted file mode 100644
index 5a5ced2..0000000
--- a/mockito/dart-mockito.iml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="WEB_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="true">
- <exclude-output />
- <content url="file://$MODULE_DIR$">
- <excludeFolder url="file://$MODULE_DIR$/.pub" />
- <excludeFolder url="file://$MODULE_DIR$/build" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="library" name="Dart SDK" level="project" />
- <orderEntry type="library" name="Dart Packages" level="project" />
- </component>
-</module>
\ No newline at end of file
diff --git a/mockito/lib/src/mock.dart b/mockito/lib/src/mock.dart
index 4a6bfb8..8dfd0d3 100644
--- a/mockito/lib/src/mock.dart
+++ b/mockito/lib/src/mock.dart
@@ -597,9 +597,9 @@
typedef dynamic Answering(Invocation realInvocation);
-typedef VerificationResult Verification(matchingInvocations);
+typedef Verification = VerificationResult Function<T>(T matchingInvocations);
-typedef void _InOrderVerification(List<dynamic> recordedInvocations);
+typedef _InOrderVerification = void Function<T>(List<T> recordedInvocations);
/// Verify that a method on a mock object was never called with the given
/// arguments.
@@ -645,7 +645,7 @@
throw new StateError(_verifyCalls.join());
}
_verificationInProgress = true;
- return (mock) {
+ return <T>(T mock) {
_verificationInProgress = false;
if (_verifyCalls.length == 1) {
_VerifyCall verifyCall = _verifyCalls.removeLast();
@@ -664,10 +664,10 @@
throw new StateError(_verifyCalls.join());
}
_verificationInProgress = true;
- return (List<dynamic> _) {
+ return <T>(List<T> _) {
_verificationInProgress = false;
DateTime dt = new DateTime.fromMillisecondsSinceEpoch(0);
- var tmpVerifyCalls = new List.from(_verifyCalls);
+ var tmpVerifyCalls = new List<_VerifyCall>.from(_verifyCalls);
_verifyCalls.clear();
List<RealCall> matchedCalls = [];
for (_VerifyCall verifyCall in tmpVerifyCalls) {
@@ -710,7 +710,7 @@
}
}
-typedef PostExpectation Expectation(x);
+typedef Expectation = PostExpectation Function<T>(T x);
/// Create a stub method response.
///
@@ -734,13 +734,13 @@
throw new StateError('Cannot call `when` within a stub response');
}
_whenInProgress = true;
- return (_) {
+ return <T>(T _) {
_whenInProgress = false;
return new PostExpectation();
};
}
-typedef Future<Invocation> InvocationLoader(_);
+typedef InvocationLoader = Future<Invocation> Function<T>(T _);
/// Returns a future [Invocation] that will complete upon the first occurrence
/// of the given invocation.
@@ -757,7 +757,7 @@
/// future will return immediately.
InvocationLoader get untilCalled {
_untilCalledInProgress = true;
- return (_) {
+ return <T>(T _) {
_untilCalledInProgress = false;
return _untilCall.invocationFuture;
};
diff --git a/mockito/pubspec.yaml b/mockito/pubspec.yaml
index b417673..ced23b5 100644
--- a/mockito/pubspec.yaml
+++ b/mockito/pubspec.yaml
@@ -1,12 +1,12 @@
name: mockito
-version: 2.2.1
+version: 2.2.3
authors:
- Dmitriy Fibulwinter <fibulwinter@gmail.com>
- Dart Team <misc@dartlang.org>
description: A mock framework inspired by Mockito.
homepage: https://github.com/dart-lang/mockito
environment:
- sdk: '>=1.21.0 <2.0.0'
+ sdk: '>=2.0.0-dev.16.0 <2.0.0'
dependencies:
collection: '^1.1.0'
matcher: '^0.12.0'
diff --git a/platform/BUILD.gn b/platform/BUILD.gn
index fbe0989..7c32209 100644
--- a/platform/BUILD.gn
+++ b/platform/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for platform-2.1.1
+# This file is generated by importer.py for platform-2.1.2
import("//build/dart/dart_library.gni")
diff --git a/platform/CHANGELOG.md b/platform/CHANGELOG.md
index 3c99300..a16b333 100644
--- a/platform/CHANGELOG.md
+++ b/platform/CHANGELOG.md
@@ -1,3 +1,7 @@
+### 2.1.2
+
+* Relax sdk upper bound constraint to '<2.0.0' to allow 'edge' dart sdk use.
+
### 2.1.1
* Bumped maximum Dart SDK version to 2.0.0-dev.infinity
diff --git a/platform/pubspec.yaml b/platform/pubspec.yaml
index f12e9f1..a841972 100644
--- a/platform/pubspec.yaml
+++ b/platform/pubspec.yaml
@@ -1,5 +1,5 @@
name: platform
-version: 2.1.1
+version: 2.1.2
authors:
- Todd Volkert <tvolkert@google.com>
description: A pluggable, mockable platform abstraction for Dart.
@@ -9,4 +9,4 @@
test: ^0.12.10
environment:
- sdk: '>=1.24.0-dev.0.0 <2.0.0-dev.infinity '
+ sdk: '>=1.24.0-dev.0.0 <2.0.0'
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 30af258..90f6d53 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for test-0.12.30+1
+# This file is generated by importer.py for test-0.12.30+3
import("//build/dart/dart_library.gni")
diff --git a/test/CHANGELOG.md b/test/CHANGELOG.md
index 6ed8fb5..fd8ff1c 100644
--- a/test/CHANGELOG.md
+++ b/test/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 0.12.30+3
+
+* Fix a memory leak when loading browser tests.
+
+## 0.12.30+2
+
+* Avoid loading test suites whose tags are excluded by `--excluded-tags`.
+
## 0.12.30+1
* Internal changes.
diff --git a/test/lib/src/runner/browser/dartium.dart b/test/lib/src/runner/browser/dartium.dart
index e785231..8cd8d1e 100644
--- a/test/lib/src/runner/browser/dartium.dart
+++ b/test/lib/src/runner/browser/dartium.dart
@@ -150,8 +150,15 @@
/// check whether it's actually connected to an isolate, indicating that
/// it's the observatory for the main page. Once we find the one that is, we
/// cancel the other requests and return it.
- return (await inCompletionOrder(operations)
- .firstWhere((url) => url != null, defaultValue: () => null)) as Uri;
+ ///
+ /// Use try/catch rather than `defaultValue` in `firstWhere` since the
+ /// parameter name will change in Dart 2.0.
+ try {
+ return (await inCompletionOrder(operations)
+ .firstWhere((url) => url != null)) as Uri;
+ } on StateError catch (_) {
+ return null;
+ }
}
/// If the URL returned by [future] corresponds to the correct Observatory
diff --git a/test/lib/src/runner/browser/post_message_channel.dart b/test/lib/src/runner/browser/post_message_channel.dart
index 50149eb..fc45376 100644
--- a/test/lib/src/runner/browser/post_message_channel.dart
+++ b/test/lib/src/runner/browser/post_message_channel.dart
@@ -2,10 +2,19 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-import 'dart:html';
+@JS()
+library test.src.runner.browser.post_message_channel;
+import 'dart:html';
+import 'dart:js_util';
+
+import 'package:js/js.dart';
import 'package:stream_channel/stream_channel.dart';
+// Avoid using this from dart:html to work around dart-lang/sdk#32113.
+@JS("window.parent.postMessage")
+external void _postParentMessage(Object message, String targetOrigin);
+
/// Constructs a [StreamChannel] wrapping `postMessage` communication with the
/// host page.
StreamChannel postMessageChannel() {
@@ -25,14 +34,14 @@
controller.local.stream.listen((data) {
// TODO(nweiz): Stop manually adding href here once issue 22554 is
// fixed.
- window.parent.postMessage(
- {"href": window.location.href, "data": data}, window.location.origin);
+ _postParentMessage(jsify({"href": window.location.href, "data": data}),
+ window.location.origin);
});
// Send a ready message once we're listening so the host knows it's safe to
// start sending events.
- window.parent.postMessage(
- {"href": window.location.href, "ready": true}, window.location.origin);
+ _postParentMessage(jsify({"href": window.location.href, "ready": true}),
+ window.location.origin);
return controller.foreign;
}
diff --git a/test/lib/src/runner/loader.dart b/test/lib/src/runner/loader.dart
index 31b1a99..fd9929e 100644
--- a/test/lib/src/runner/loader.dart
+++ b/test/lib/src/runner/loader.dart
@@ -211,6 +211,10 @@
return;
}
+ if (_config.suiteDefaults.excludeTags.evaluate(suiteConfig.metadata.tags)) {
+ return;
+ }
+
if (_config.pubServeUrl != null && !p.isWithin('test', path)) {
yield new LoadSuite.forLoadException(
new LoadException(
diff --git a/test/pubspec.yaml b/test/pubspec.yaml
index 80f14c1..d595e3b 100644
--- a/test/pubspec.yaml
+++ b/test/pubspec.yaml
@@ -1,5 +1,5 @@
name: test
-version: 0.12.30+1
+version: 0.12.30+3
author: Dart Team <misc@dartlang.org>
description: A library for writing dart unit tests.
homepage: https://github.com/dart-lang/test
diff --git a/test/tool/host.dart b/test/tool/host.dart
index 5234147..53350d9 100644
--- a/test/tool/host.dart
+++ b/test/tool/host.dart
@@ -48,6 +48,9 @@
/// The iframes created for each loaded test suite, indexed by the suite id.
final _iframes = new Map<int, IFrameElement>();
+/// Subscriptions created for each loaded test suite, indexed by the suite id.
+final _subscriptions = new Map<int, List<StreamSubscription>>();
+
/// The URL for the current page.
final _currentUrl = Uri.parse(window.location.href);
@@ -124,7 +127,11 @@
document.body.classes.remove('paused');
} else {
assert(message['command'] == 'closeSuite');
- _iframes[message['id']].remove();
+ _iframes.remove(message['id']).remove();
+
+ for (var subscription in _subscriptions.remove(message['id'])) {
+ subscription.cancel();
+ }
}
});
@@ -184,9 +191,12 @@
// message to us. This ensures that no messages get dropped on the floor.
var readyCompleter = new Completer();
+ var subscriptions = <StreamSubscription>[];
+ _subscriptions[id] = subscriptions;
+
// TODO(nweiz): use MessageChannel once Firefox supports it
// (http://caniuse.com/#search=MessageChannel).
- window.onMessage.listen((message) {
+ subscriptions.add(window.onMessage.listen((message) {
// A message on the Window can theoretically come from any website. It's
// very unlikely that a malicious site would care about hacking someone's
// unit tests, let alone be able to find the test server while it's
@@ -205,13 +215,13 @@
} else {
controller.local.sink.add(message.data["data"]);
}
- });
+ }));
- controller.local.stream.listen((message) async {
+ subscriptions.add(controller.local.stream.listen((message) async {
await readyCompleter.future;
iframe.contentWindow.postMessage(message, window.location.origin);
- });
+ }));
return controller.foreign;
}
diff --git a/typed_data/.travis.yml b/typed_data/.travis.yml
new file mode 100644
index 0000000..aa7342b
--- /dev/null
+++ b/typed_data/.travis.yml
@@ -0,0 +1,17 @@
+language: dart
+dart:
+ - dev
+ - stable
+
+dart_task:
+ - test: -p vm,firefox
+ - dartfmt
+ - analyzer
+
+# Only building master means that we don't run two builds for each pull request.
+branches:
+ only: [master]
+
+cache:
+ directories:
+ - $HOME/.pub-cache
diff --git a/typed_data/BUILD.gn b/typed_data/BUILD.gn
index 3fbccf3..4838af7 100644
--- a/typed_data/BUILD.gn
+++ b/typed_data/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for typed_data-1.1.4
+# This file is generated by importer.py for typed_data-1.1.5
import("//build/dart/dart_library.gni")
diff --git a/typed_data/CHANGELOG.md b/typed_data/CHANGELOG.md
index 8d40dc4..5f92914 100644
--- a/typed_data/CHANGELOG.md
+++ b/typed_data/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.1.5
+
+* Undo unnessesary SDK version constraint tweak.
+
## 1.1.4
* Expand the SDK version constraint to include `<2.0.0-dev.infinity`.
diff --git a/typed_data/lib/typed_buffers.dart b/typed_data/lib/typed_buffers.dart
index 0951480..23f2cbb 100644
--- a/typed_data/lib/typed_buffers.dart
+++ b/typed_data/lib/typed_buffers.dart
@@ -36,12 +36,12 @@
this._length = buffer.length;
int get length => _length;
- E operator[](int index) {
+ E operator [](int index) {
if (index >= length) throw new RangeError.index(index, this);
return _buffer[index];
}
- void operator[]=(int index, E value) {
+ void operator []=(int index, E value) {
if (index >= length) throw new RangeError.index(index, this);
_buffer[index] = value;
}
@@ -73,7 +73,9 @@
// We override the default implementation of `add` because it grows the list
// by setting the length in increments of one. We want to grow by doubling
// capacity in most cases.
- void add(E value) { _add(value); }
+ void add(E value) {
+ _add(value);
+ }
/// Appends all objects of [values] to the end of this buffer.
///
@@ -112,7 +114,6 @@
if (start == end) return;
}
-
// If we're adding to the end of the list anyway, use [_addAll]. This lets
// us avoid converting [values] into a list even if [end] is null, since we
// can add values iteratively to the end of the list. We can't do so in the
@@ -162,7 +163,7 @@
// Reverses the range [start..end) of buffer.
static void _reverse(List buffer, int start, int end) {
- end--; // Point to last element, not after last element.
+ end--; // Point to last element, not after last element.
while (start < end) {
var first = buffer[start];
var last = buffer[end];
@@ -311,13 +312,13 @@
}
abstract class _IntBuffer extends _TypedDataBuffer<int> {
- _IntBuffer(List<int> buffer): super(buffer);
+ _IntBuffer(List<int> buffer) : super(buffer);
int get _defaultValue => 0;
}
abstract class _FloatBuffer extends _TypedDataBuffer<double> {
- _FloatBuffer(List<double> buffer): super(buffer);
+ _FloatBuffer(List<double> buffer) : super(buffer);
double get _defaultValue => 0.0;
}
diff --git a/typed_data/pubspec.yaml b/typed_data/pubspec.yaml
index 59b3cc0..78bc786 100644
--- a/typed_data/pubspec.yaml
+++ b/typed_data/pubspec.yaml
@@ -1,9 +1,9 @@
name: typed_data
-version: 1.1.4
+version: 1.1.5
author: Dart Team <misc@dartlang.org>
description: Utility functions and classes related to the 'dart:typed_data' library.
homepage: https://github.com/dart-lang/typed_data
dev_dependencies:
test: "^0.12.0"
environment:
- sdk: ">=1.8.0 <2.0.0-dev.infinity"
+ sdk: ">=1.8.0 <2.0.0"
diff --git a/utf/.gitignore b/utf/.gitignore
index 4232a2f..52f0c5b 100644
--- a/utf/.gitignore
+++ b/utf/.gitignore
@@ -1,4 +1,3 @@
.packages
.pub/
-packages
pubspec.lock
diff --git a/utf/.status b/utf/.status
deleted file mode 100644
index ebc5f81..0000000
--- a/utf/.status
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-# Skip non-test files ending with "_test".
-packages/*: Skip
-*/packages/*: Skip
-*/*/packages/*: Skip
-*/*/*/packages/*: Skip
-*/*/*/*packages/*: Skip
-*/*/*/*/*packages/*: Skip
-
diff --git a/utf/.travis.yml b/utf/.travis.yml
new file mode 100644
index 0000000..16cd8fd
--- /dev/null
+++ b/utf/.travis.yml
@@ -0,0 +1,18 @@
+language: dart
+
+dart:
+ - dev
+
+dart_task:
+ - test
+ - test: --platform firefox -j 1
+ - dartanalyzer: --fatal-infos --fatal-warnings .
+ - dartfmt
+
+# Only building master means that we don't run two builds for each pull request.
+branches:
+ only: [master]
+
+cache:
+ directories:
+ - $HOME/.pub-cache
diff --git a/utf/BUILD.gn b/utf/BUILD.gn
index 1d113da..80de3f5 100644
--- a/utf/BUILD.gn
+++ b/utf/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for utf-0.9.0+3
+# This file is generated by importer.py for utf-0.9.0+4
import("//build/dart/dart_library.gni")
diff --git a/utf/CHANGELOG.md b/utf/CHANGELOG.md
index 028311f..ea482a6 100644
--- a/utf/CHANGELOG.md
+++ b/utf/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 0.9.0+4
+
+* Updates to support Dart 2.0 core library changes (wave
+ 2.2). Package now requires Dart `2.0.0-dev.20.0`.
+ See [issue 31847][sdk#31847] for details.
+
+ [sdk#31847]: https://github.com/dart-lang/sdk/issues/31847
+
## 0.9.0+3
* Code cleanup.
diff --git a/utf/analysis_options.yaml b/utf/analysis_options.yaml
new file mode 100644
index 0000000..0c32448
--- /dev/null
+++ b/utf/analysis_options.yaml
@@ -0,0 +1,40 @@
+analyzer:
+ strong-mode:
+ implicit-casts: false
+ errors:
+ dead_code: error
+ override_on_non_overriding_method: error
+ unused_element: error
+ unused_import: error
+ unused_local_variable: error
+linter:
+ rules:
+ #- annotate_overrides
+ - avoid_empty_else
+ - avoid_init_to_null
+ - avoid_return_types_on_setters
+ - await_only_futures
+ - camel_case_types
+ - comment_references
+ - control_flow_in_finally
+ - directives_ordering
+ - empty_catches
+ - empty_constructor_bodies
+ - empty_statements
+ - hash_and_equals
+ - implementation_imports
+ - library_names
+ - library_prefixes
+ - non_constant_identifier_names
+ #- omit_local_variable_types
+ - only_throw_errors
+ - prefer_final_fields
+ - prefer_is_not_empty
+ #- prefer_single_quotes
+ #- slash_for_doc_comments
+ - test_types_in_equals
+ - test_types_in_equals
+ - throw_in_finally
+ - type_init_formals
+ - unrelated_type_equality_checks
+ - valid_regexps
diff --git a/utf/codereview.settings b/utf/codereview.settings
deleted file mode 100644
index b55fcbd..0000000
--- a/utf/codereview.settings
+++ /dev/null
@@ -1,3 +0,0 @@
-CODE_REVIEW_SERVER: http://codereview.chromium.org/
-VIEW_VC: https://github.com/dart-lang/utf/commit/
-CC_LIST: reviews@dartlang.org
diff --git a/utf/lib/src/list_range.dart b/utf/lib/src/list_range.dart
index 159512d..3f211d8 100644
--- a/utf/lib/src/list_range.dart
+++ b/utf/lib/src/list_range.dart
@@ -18,7 +18,7 @@
final int _offset;
final int _length;
- ListRange(List<int> source, [offset = 0, length])
+ ListRange(List<int> source, [int offset = 0, int length])
: this._source = source,
this._offset = offset,
this._length = (length == null ? source.length - offset : length) {
diff --git a/utf/lib/src/utf16.dart b/utf/lib/src/utf16.dart
index 87ba12a..9d63fb0 100644
--- a/utf/lib/src/utf16.dart
+++ b/utf/lib/src/utf16.dart
@@ -242,7 +242,7 @@
// TODO(kevmoo): should this field be private?
final ListRangeIterator utf16EncodedBytesIterator;
final int replacementCodepoint;
- int _current = null;
+ int _current;
Utf16BytesToCodeUnitsDecoder._fromListRangeIterator(
this.utf16EncodedBytesIterator, this.replacementCodepoint);
diff --git a/utf/lib/src/utf32.dart b/utf/lib/src/utf32.dart
index 68370c7..bf7d341 100644
--- a/utf/lib/src/utf32.dart
+++ b/utf/lib/src/utf32.dart
@@ -218,7 +218,7 @@
// TODO(kevmoo): should this field be private?
final ListRangeIterator utf32EncodedBytesIterator;
final int replacementCodepoint;
- int _current = null;
+ int _current;
Utf32BytesDecoder._fromListRangeIterator(
this.utf32EncodedBytesIterator, this.replacementCodepoint);
diff --git a/utf/lib/src/utf8.dart b/utf/lib/src/utf8.dart
index ecf8707..970c166 100644
--- a/utf/lib/src/utf8.dart
+++ b/utf/lib/src/utf8.dart
@@ -147,7 +147,7 @@
IterableUtf8Decoder(this.bytes,
[this.offset = 0,
- this.length = null,
+ this.length,
this.replacementCodepoint = UNICODE_REPLACEMENT_CHARACTER_CODEPOINT]);
Utf8Decoder get iterator =>
@@ -166,7 +166,7 @@
// TODO(kevmoo): should this field be private?
final ListRangeIterator utf8EncodedBytesIterator;
final int replacementCodepoint;
- int _current = null;
+ int _current;
Utf8Decoder(List<int> utf8EncodedBytes,
[int offset = 0,
diff --git a/utf/lib/src/utf_16_code_unit_decoder.dart b/utf/lib/src/utf_16_code_unit_decoder.dart
index 7d9e98f..28c150e 100644
--- a/utf/lib/src/utf_16_code_unit_decoder.dart
+++ b/utf/lib/src/utf_16_code_unit_decoder.dart
@@ -17,18 +17,17 @@
// TODO(kevmoo): should this field be private?
final ListRangeIterator utf16CodeUnitIterator;
final int replacementCodepoint;
- int _current = null;
+ int _current;
Utf16CodeUnitDecoder(List<int> utf16CodeUnits,
[int offset = 0,
int length,
- int this.replacementCodepoint = UNICODE_REPLACEMENT_CHARACTER_CODEPOINT])
+ this.replacementCodepoint = UNICODE_REPLACEMENT_CHARACTER_CODEPOINT])
: utf16CodeUnitIterator =
(new ListRange(utf16CodeUnits, offset, length)).iterator;
Utf16CodeUnitDecoder.fromListRangeIterator(
- ListRangeIterator this.utf16CodeUnitIterator,
- int this.replacementCodepoint);
+ this.utf16CodeUnitIterator, this.replacementCodepoint);
Iterator<int> get iterator => this;
diff --git a/utf/lib/src/utf_stream.dart b/utf/lib/src/utf_stream.dart
index 83e442f..e39a088 100644
--- a/utf/lib/src/utf_stream.dart
+++ b/utf/lib/src/utf_stream.dart
@@ -10,15 +10,15 @@
import 'util.dart';
// TODO(floitsch): make this transformer reusable.
-abstract class _StringDecoder
- implements StreamTransformer<List<int>, String>, EventSink<List<int>> {
+abstract class _StringDecoder extends StreamTransformerBase<List<int>, String>
+ implements EventSink<List<int>> {
List<int> _carry;
List<int> _buffer;
int _replacementChar;
EventSink<String> _outSink;
- _StringDecoder(int this._replacementChar);
+ _StringDecoder(this._replacementChar);
Stream<String> bind(Stream<List<int>> stream) {
return new Stream<String>.eventTransformed(stream,
@@ -52,6 +52,7 @@
}
return null;
}
+
int consumed = _processBytes(getNext);
if (consumed > 0) {
goodChars = _buffer.length;
@@ -108,6 +109,7 @@
throw new ArgumentError('Invalid codepoint');
}
}
+
if (char < 0) error();
if (char >= 0xD800 && char <= 0xDFFF) error();
if (char > 0x10FFFF) error();
@@ -176,8 +178,8 @@
}
}
-abstract class _StringEncoder
- implements StreamTransformer<String, List<int>>, EventSink<String> {
+abstract class _StringEncoder extends StreamTransformerBase<String, List<int>>
+ implements EventSink<String> {
EventSink<List<int>> _outSink;
Stream<List<int>> bind(Stream<String> stream) {
diff --git a/utf/lib/utf.dart b/utf/lib/utf.dart
index 40ffcfe..671e17c 100644
--- a/utf/lib/utf.dart
+++ b/utf/lib/utf.dart
@@ -10,8 +10,8 @@
export 'src/constants.dart';
export 'src/shared.dart';
-export 'src/utf_16_code_unit_decoder.dart';
-export 'src/utf_stream.dart';
export 'src/utf16.dart';
export 'src/utf32.dart';
export 'src/utf8.dart';
+export 'src/utf_16_code_unit_decoder.dart';
+export 'src/utf_stream.dart';
diff --git a/utf/pubspec.yaml b/utf/pubspec.yaml
index 8fb2c51..042fb49 100644
--- a/utf/pubspec.yaml
+++ b/utf/pubspec.yaml
@@ -1,10 +1,10 @@
name: utf
-version: 0.9.0+3
+version: 0.9.0+4
author: Dart Team <misc@dartlang.org>
description: >
Provides common operations for manipulating Unicode sequences
homepage: https://www.github.com/dart-lang/utf
environment:
- sdk: '>=1.0.0 <2.0.0'
+ sdk: '>=2.0.0-dev.20.0 <2.0.0'
dev_dependencies:
test: ^0.12.0
diff --git a/video_player/BUILD.gn b/video_player/BUILD.gn
index efd5e9d..fc20cb6 100644
--- a/video_player/BUILD.gn
+++ b/video_player/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for video_player-0.1.1
+# This file is generated by importer.py for video_player-0.2.1
import("//build/dart/dart_library.gni")
diff --git a/video_player/CHANGELOG.md b/video_player/CHANGELOG.md
index 91f16b5..30ce922 100644
--- a/video_player/CHANGELOG.md
+++ b/video_player/CHANGELOG.md
@@ -1,3 +1,14 @@
+## 0.2.1
+
+* Fixed some signatures to account for strong mode runtime errors.
+* Fixed spelling mistake in toString output.
+
+## 0.2.0
+
+* **Breaking change**. Renamed `VideoPlayerController.isErroneous` to `VideoPlayerController.hasError`.
+* Updated documentation of when fields are available on `VideoPlayerController`.
+* Updated links in README.md.
+
## 0.1.1
* Simplified and upgraded Android project template to Android SDK 27.
diff --git a/video_player/example/ios/.gitignore b/video_player/example/ios/.gitignore
index 38864ee..8877902 100644
--- a/video_player/example/ios/.gitignore
+++ b/video_player/example/ios/.gitignore
@@ -31,11 +31,12 @@
Icon?
.tags*
-/Flutter/app.flx
/Flutter/app.zip
/Flutter/App.framework
/Flutter/Flutter.framework
+/Flutter/flutter_assets/
/Flutter/Generated.xcconfig
/ServiceDefinitions.json
Pods/
+Podfile
diff --git a/video_player/example/ios/Podfile b/video_player/example/ios/Podfile
deleted file mode 100644
index 90b5f65..0000000
--- a/video_player/example/ios/Podfile
+++ /dev/null
@@ -1,36 +0,0 @@
-# Uncomment this line to define a global platform for your project
-# platform :ios, '9.0'
-
-if ENV['FLUTTER_FRAMEWORK_DIR'] == nil
- abort('Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework')
-end
-
-target 'Runner' do
- # Pods for Runner
-
- # Flutter Pods
- pod 'Flutter', :path => ENV['FLUTTER_FRAMEWORK_DIR']
-
- if File.exists? '../.flutter-plugins'
- flutter_root = File.expand_path('..')
- File.foreach('../.flutter-plugins') { |line|
- plugin = line.split(pattern='=')
- if plugin.length == 2
- name = plugin[0].strip()
- path = plugin[1].strip()
- resolved_path = File.expand_path("#{path}/ios", flutter_root)
- pod name, :path => resolved_path
- else
- puts "Invalid plugin specification: #{line}"
- end
- }
- end
-end
-
-post_install do |installer|
- installer.pods_project.targets.each do |target|
- target.build_configurations.each do |config|
- config.build_settings['ENABLE_BITCODE'] = 'NO'
- end
- end
-end
diff --git a/video_player/example/lib/main.dart b/video_player/example/lib/main.dart
index 7fb1109..59920bd 100644
--- a/video_player/example/lib/main.dart
+++ b/video_player/example/lib/main.dart
@@ -172,7 +172,7 @@
super.initState();
controller = new VideoPlayerController(widget.uri);
controller.addListener(() {
- if (controller.value.isErroneous) {
+ if (controller.value.hasError) {
print(controller.value.errorDescription);
}
});
diff --git a/video_player/lib/video_player.dart b/video_player/lib/video_player.dart
index 101c6cb..0c9b844 100644
--- a/video_player/lib/video_player.dart
+++ b/video_player/lib/video_player.dart
@@ -11,7 +11,7 @@
final MethodChannel _channel = const MethodChannel('flutter.io/videoPlayer')
// This will clear all open videos on the platform when a full restart is
// performed.
- ..invokeMethod("init");
+ ..invokeMethod('init');
class DurationRange {
DurationRange(this.start, this.end);
@@ -31,14 +31,37 @@
String toString() => '$runtimeType(start: $start, end: $end)';
}
+/// The duration, current position, buffering state, error state and settings
+/// of a [VideoPlayerController].
class VideoPlayerValue {
+ /// The total duration of the video.
+ ///
+ /// Is null when [initialized] is false.
final Duration duration;
+
+ /// The current playback position.
final Duration position;
+
+ /// The currently buffered ranges.
final List<DurationRange> buffered;
+
+ /// True if the video is playing. False if it's paused.
final bool isPlaying;
+
+ /// True if the video is looping.
final bool isLooping;
+
+ /// The current volume of the playback.
final double volume;
+
+ /// A description of the error if present.
+ ///
+ /// If [hasError] is false this is [null].
final String errorDescription;
+
+ /// The [size] of the currently loaded video.
+ ///
+ /// Is null when [initialized] is false.
final Size size;
VideoPlayerValue({
@@ -58,7 +81,7 @@
: this(duration: null, errorDescription: errorDescription);
bool get initialized => duration != null;
- bool get isErroneous => errorDescription != null;
+ bool get hasError => errorDescription != null;
double get aspectRatio => size.width / size.height;
VideoPlayerValue copyWith({
@@ -90,7 +113,7 @@
'size: $size, '
'position: $position, '
'buffered: [${buffered.join(', ')}], '
- 'isplaying: $isPlaying, '
+ 'isPlaying: $isPlaying, '
'isLooping: $isLooping, '
'volume: $volume, '
'errorDescription: $errorDescription)';
@@ -113,7 +136,7 @@
Timer timer;
bool isDisposed = false;
Completer<Null> _creatingCompleter;
- StreamSubscription<Map<String, dynamic>> _eventSubscription;
+ StreamSubscription<dynamic> _eventSubscription;
_VideoAppLifeCycleObserver _lifeCycleObserver;
VideoPlayerController(this.uri) : super(new VideoPlayerValue(duration: null));
@@ -122,42 +145,48 @@
_lifeCycleObserver = new _VideoAppLifeCycleObserver(this);
_lifeCycleObserver.initialize();
_creatingCompleter = new Completer<Null>();
- final Map<String, dynamic> response = await _channel.invokeMethod(
+ final Map<dynamic, dynamic> response = await _channel.invokeMethod(
'create',
<String, dynamic>{'dataSource': uri},
);
- _textureId = response["textureId"];
+ _textureId = response['textureId'];
_creatingCompleter.complete(null);
- DurationRange toDurationRange(List<int> values) {
+ DurationRange toDurationRange(dynamic value) {
+ final List<dynamic> pair = value;
return new DurationRange(
- new Duration(milliseconds: values[0]),
- new Duration(milliseconds: values[1]),
+ new Duration(milliseconds: pair[0]),
+ new Duration(milliseconds: pair[1]),
);
}
void eventListener(dynamic event) {
- final Map<String, dynamic> map = event;
- if (map["event"] == "initialized") {
- value = value.copyWith(
- duration: new Duration(milliseconds: map["duration"]),
- size: new Size(map["width"].toDouble(), map["height"].toDouble()),
- );
- _applyLooping();
- _applyVolume();
- _applyPlayPause();
- } else if (map["event"] == "completed") {
- value = value.copyWith(isPlaying: false);
- timer?.cancel();
- } else if (map["event"] == "bufferingUpdate") {
- final List<List<int>> bufferedValues = map["values"];
- value = value.copyWith(
- buffered: bufferedValues.map(toDurationRange).toList(),
- );
+ final Map<dynamic, dynamic> map = event;
+ switch (map['event']) {
+ case 'initialized':
+ value = value.copyWith(
+ duration: new Duration(milliseconds: map['duration']),
+ size: new Size(map['width'].toDouble(), map['height'].toDouble()),
+ );
+ _applyLooping();
+ _applyVolume();
+ _applyPlayPause();
+ break;
+ case 'completed':
+ value = value.copyWith(isPlaying: false);
+ timer?.cancel();
+ break;
+ case 'bufferingUpdate':
+ final List<dynamic> values = map['values'];
+ value = value.copyWith(
+ buffered: values.map<DurationRange>(toDurationRange).toList(),
+ );
+ break;
}
}
- void errorListener(PlatformException e) {
+ void errorListener(Object obj) {
+ final PlatformException e = obj;
value = new VideoPlayerValue.erroneous(e.message);
timer?.cancel();
}
@@ -168,7 +197,7 @@
}
EventChannel _eventChannelFor(int textureId) {
- return new EventChannel("flutter.io/videoPlayer/videoEvents$textureId");
+ return new EventChannel('flutter.io/videoPlayer/videoEvents$textureId');
}
@override
diff --git a/video_player/pubspec.yaml b/video_player/pubspec.yaml
index e79e1fd..c1dedec 100644
--- a/video_player/pubspec.yaml
+++ b/video_player/pubspec.yaml
@@ -2,7 +2,7 @@
description: Flutter plugin for displaying inline video with other Flutter
widgets on Android and iOS.
author: Flutter Team <flutter-dev@googlegroups.com>
-version: 0.1.1
+version: 0.2.1
homepage: https://github.com/flutter/plugins/tree/master/packages/video_player
flutter:
diff --git a/vm_service_client/BUILD.gn b/vm_service_client/BUILD.gn
index 554f69a..6cbfb37 100644
--- a/vm_service_client/BUILD.gn
+++ b/vm_service_client/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for vm_service_client-0.2.4
+# This file is generated by importer.py for vm_service_client-0.2.4+1
import("//build/dart/dart_library.gni")
diff --git a/vm_service_client/CHANGELOG.md b/vm_service_client/CHANGELOG.md
index f508891..5df5c56 100644
--- a/vm_service_client/CHANGELOG.md
+++ b/vm_service_client/CHANGELOG.md
@@ -1,3 +1,10 @@
+## 0.2.4+1
+
+* Updates to support Dart 2.0 core library changes (wave
+ 2.2). See [issue 31847][sdk#31847] for details.
+
+ [sdk#31847]: https://github.com/dart-lang/sdk/issues/31847
+
## 0.2.4
* Internal changes only.
diff --git a/vm_service_client/lib/src/v1_compatibility.dart b/vm_service_client/lib/src/v1_compatibility.dart
index 0d42f15..8007be0 100644
--- a/vm_service_client/lib/src/v1_compatibility.dart
+++ b/vm_service_client/lib/src/v1_compatibility.dart
@@ -6,7 +6,7 @@
const v1CompatibilityTransformer = const _V1CompatibilityTransformer();
-class _V1CompatibilityTransformer implements StreamTransformer {
+class _V1CompatibilityTransformer extends StreamTransformerBase {
const _V1CompatibilityTransformer();
Stream bind(Stream stream) {
diff --git a/vm_service_client/pubspec.yaml b/vm_service_client/pubspec.yaml
index 2d5ff6d..bb74ba2 100644
--- a/vm_service_client/pubspec.yaml
+++ b/vm_service_client/pubspec.yaml
@@ -1,11 +1,11 @@
name: vm_service_client
-version: 0.2.4
+version: 0.2.4+1
description: A client for the Dart VM service.
author: Dart Team <misc@dartlang.org>
homepage: https://github.com/dart-lang/vm_service_client
environment:
- sdk: '>=1.21.0 <2.0.0'
+ sdk: '>=2.0.0-dev.20.0 <2.0.0'
dependencies:
async: '>=1.7.0 <3.0.0'
diff --git a/watcher/BUILD.gn b/watcher/BUILD.gn
index 815efa0..ed45d6b 100644
--- a/watcher/BUILD.gn
+++ b/watcher/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for watcher-0.9.7+6
+# This file is generated by importer.py for watcher-0.9.7+7
import("//build/dart/dart_library.gni")
diff --git a/watcher/CHANGELOG.md b/watcher/CHANGELOG.md
index 5e6c3d2..8f1ffc3 100644
--- a/watcher/CHANGELOG.md
+++ b/watcher/CHANGELOG.md
@@ -1,3 +1,11 @@
+# 0.9.7+7
+
+* Updates to support Dart 2.0 core library changes (wave 2.2).
+ See [issue 31847][sdk#31847] for details.
+
+ [sdk#31847]: https://github.com/dart-lang/sdk/issues/31847
+
+
# 0.9.7+6
* Internal changes only, namely removing dep on scheduled test.
diff --git a/watcher/lib/src/directory_watcher/linux.dart b/watcher/lib/src/directory_watcher/linux.dart
index 717e420..354ddc0 100644
--- a/watcher/lib/src/directory_watcher/linux.dart
+++ b/watcher/lib/src/directory_watcher/linux.dart
@@ -127,8 +127,7 @@
}
/// The callback that's run when a batch of changes comes in.
- void _onBatch(Object data) {
- var batch = data as List<FileSystemEvent>;
+ void _onBatch(List<FileSystemEvent> batch) {
var files = new Set<String>();
var dirs = new Set<String>();
var changed = new Set<String>();
@@ -251,7 +250,7 @@
/// Like [Stream.listen], but automatically adds the subscription to
/// [_subscriptions] so that it can be canceled when [close] is called.
- void _listen(Stream stream, void onData(event),
+ void _listen<T>(Stream<T> stream, void onData(T event),
{Function onError, void onDone(), bool cancelOnError}) {
var subscription;
subscription = stream.listen(onData, onError: onError, onDone: () {
diff --git a/watcher/lib/src/utils.dart b/watcher/lib/src/utils.dart
index 18b53c9..0b2f799 100644
--- a/watcher/lib/src/utils.dart
+++ b/watcher/lib/src/utils.dart
@@ -78,7 +78,7 @@
/// asynchronous firing of each event. In order to recreate the synchronous
/// batches, this collates all the events that are received in "nearby"
/// microtasks.
-class BatchedStreamTransformer<T> implements StreamTransformer<T, List<T>> {
+class BatchedStreamTransformer<T> extends StreamTransformerBase<T, List<T>> {
Stream<List<T>> bind(Stream<T> input) {
var batch = new Queue<T>();
return new StreamTransformer<T, List<T>>.fromHandlers(
diff --git a/watcher/pubspec.yaml b/watcher/pubspec.yaml
index 62abc69..daea75b 100644
--- a/watcher/pubspec.yaml
+++ b/watcher/pubspec.yaml
@@ -1,12 +1,12 @@
name: watcher
-version: 0.9.7+6
+version: 0.9.7+7
author: Dart Team <misc@dartlang.org>
homepage: https://github.com/dart-lang/watcher
description: >
A file system watcher. It monitors changes to contents of directories and
sends notifications when files have been added, removed, or modified.
environment:
- sdk: '>=1.21.0 <2.0.0'
+ sdk: '>=2.0.0-dev.20.0 <2.0.0'
dependencies:
async: '>=1.10.0 <3.0.0'
path: '>=0.9.0 <2.0.0'
diff --git a/web_socket_channel/BUILD.gn b/web_socket_channel/BUILD.gn
index 154b855..42e3b1a 100644
--- a/web_socket_channel/BUILD.gn
+++ b/web_socket_channel/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by importer.py for web_socket_channel-1.0.6
+# This file is generated by importer.py for web_socket_channel-1.0.7
import("//build/dart/dart_library.gni")
diff --git a/web_socket_channel/CHANGELOG.md b/web_socket_channel/CHANGELOG.md
index f29baf9..d50f8d0 100644
--- a/web_socket_channel/CHANGELOG.md
+++ b/web_socket_channel/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.7
+
+* Support the latest dev SDK.
+
## 1.0.6
* Declare support for `async` 2.0.0.
diff --git a/web_socket_channel/lib/src/copy/bytes_builder.dart b/web_socket_channel/lib/src/copy/bytes_builder.dart
index 429e6d1..1e37093 100644
--- a/web_socket_channel/lib/src/copy/bytes_builder.dart
+++ b/web_socket_channel/lib/src/copy/bytes_builder.dart
@@ -9,9 +9,8 @@
// Because it's copied directly, there are no modifications from the original.
//
// This is up-to-date as of sdk revision
-// e41fb4cafd6052157dbc1490d437045240f4773f.
+// 365f7b5a8b6ef900a5ee23913b7203569b81b175.
-import 'dart:math';
import 'dart:typed_data';
/// Builds a list of bytes, allowing bytes and lists of bytes to be added at the
@@ -46,7 +45,7 @@
/// Returns the contents of `this` and clears `this`.
///
- /// The list returned is a view of the the internal buffer, limited to the
+ /// The list returned is a view of the internal buffer, limited to the
/// [length].
List<int> takeBytes();
@@ -72,24 +71,22 @@
// Start with 1024 bytes.
static const int _INIT_SIZE = 1024;
+ static final _emptyList = new Uint8List(0);
+
int _length = 0;
Uint8List _buffer;
+ _CopyingBytesBuilder([int initialCapacity = 0])
+ : _buffer = (initialCapacity <= 0)
+ ? _emptyList
+ : new Uint8List(_pow2roundup(initialCapacity));
+
void add(List<int> bytes) {
int bytesLength = bytes.length;
if (bytesLength == 0) return;
int required = _length + bytesLength;
- if (_buffer == null) {
- int size = _pow2roundup(required);
- size = max(size, _INIT_SIZE);
- _buffer = new Uint8List(size);
- } else if (_buffer.length < required) {
- // We will create a list in the range of 2-4 times larger than
- // required.
- int size = _pow2roundup(required) * 2;
- var newBuffer = new Uint8List(size);
- newBuffer.setRange(0, _buffer.length, _buffer);
- _buffer = newBuffer;
+ if (_buffer.length < required) {
+ _grow(required);
}
assert(_buffer.length >= required);
if (bytes is Uint8List) {
@@ -103,18 +100,39 @@
}
void addByte(int byte) {
- add([byte]);
+ if (_buffer.length == _length) {
+ // The grow algorithm always at least doubles.
+ // If we added one to _length it would quadruple unnecessarily.
+ _grow(_length);
+ }
+ assert(_buffer.length > _length);
+ _buffer[_length] = byte;
+ _length++;
+ }
+
+ void _grow(int required) {
+ // We will create a list in the range of 2-4 times larger than
+ // required.
+ int newSize = required * 2;
+ if (newSize < _INIT_SIZE) {
+ newSize = _INIT_SIZE;
+ } else {
+ newSize = _pow2roundup(newSize);
+ }
+ var newBuffer = new Uint8List(newSize);
+ newBuffer.setRange(0, _buffer.length, _buffer);
+ _buffer = newBuffer;
}
List<int> takeBytes() {
- if (_buffer == null) return new Uint8List(0);
+ if (_length == 0) return _emptyList;
var buffer = new Uint8List.view(_buffer.buffer, 0, _length);
clear();
return buffer;
}
List<int> toBytes() {
- if (_buffer == null) return new Uint8List(0);
+ if (_length == 0) return _emptyList;
return new Uint8List.fromList(
new Uint8List.view(_buffer.buffer, 0, _length));
}
@@ -127,10 +145,11 @@
void clear() {
_length = 0;
- _buffer = null;
+ _buffer = _emptyList;
}
- int _pow2roundup(int x) {
+ static int _pow2roundup(int x) {
+ assert(x > 0);
--x;
x |= x >> 1;
x |= x >> 2;
@@ -143,24 +162,28 @@
class _BytesBuilder implements BytesBuilder {
int _length = 0;
- final _chunks = <List<int>>[];
+ final List<Uint8List> _chunks = [];
void add(List<int> bytes) {
- if (bytes is! Uint8List) {
- bytes = new Uint8List.fromList(bytes);
+ Uint8List typedBytes;
+ if (bytes is Uint8List) {
+ typedBytes = bytes;
+ } else {
+ typedBytes = new Uint8List.fromList(bytes);
}
- _chunks.add(bytes);
- _length += bytes.length;
+ _chunks.add(typedBytes);
+ _length += typedBytes.length;
}
void addByte(int byte) {
- add([byte]);
+ _chunks.add(new Uint8List(1)..[0] = byte);
+ _length++;
}
List<int> takeBytes() {
- if (_chunks.length == 0) return new Uint8List(0);
+ if (_length == 0) return _CopyingBytesBuilder._emptyList;
if (_chunks.length == 1) {
- var buffer = _chunks.single;
+ var buffer = _chunks[0];
clear();
return buffer;
}
@@ -175,7 +198,7 @@
}
List<int> toBytes() {
- if (_chunks.length == 0) return new Uint8List(0);
+ if (_length == 0) return _CopyingBytesBuilder._emptyList;
var buffer = new Uint8List(_length);
int offset = 0;
for (var chunk in _chunks) {
diff --git a/web_socket_channel/lib/src/copy/io_sink.dart b/web_socket_channel/lib/src/copy/io_sink.dart
index dafd86b..3a51ff1 100644
--- a/web_socket_channel/lib/src/copy/io_sink.dart
+++ b/web_socket_channel/lib/src/copy/io_sink.dart
@@ -9,7 +9,7 @@
// desired public API and to remove "dart:io" dependencies have been made.
//
// This is up-to-date as of sdk revision
-// e41fb4cafd6052157dbc1490d437045240f4773f.
+// 365f7b5a8b6ef900a5ee23913b7203569b81b175.
import 'dart:async';
@@ -24,12 +24,20 @@
StreamSinkImpl(this._target);
+ // The _reportClosedSink method has been deleted for web_socket_channel. This
+ // method did nothing but print to stderr, which is unavailable here.
+
void add(T data) {
- if (_isClosed) return;
+ if (_isClosed) {
+ return;
+ }
_controller.add(data);
}
void addError(error, [StackTrace stackTrace]) {
+ if (_isClosed) {
+ return;
+ }
_controller.addError(error, stackTrace);
}
@@ -37,19 +45,19 @@
if (_isBound) {
throw new StateError("StreamSink is already bound to a stream");
}
- _isBound = true;
if (_hasError) return done;
- // Wait for any sync operations to complete.
- Future targetAddStream() {
- return _target.addStream(stream).whenComplete(() {
- _isBound = false;
- });
- }
- if (_controllerInstance == null) return targetAddStream();
- var future = _controllerCompleter.future;
- _controllerInstance.close();
- return future.then((_) => targetAddStream());
+ _isBound = true;
+ var future = _controllerCompleter == null
+ ? _target.addStream(stream)
+ : _controllerCompleter.future.then((_) => _target.addStream(stream));
+ _controllerInstance?.close();
+
+ // Wait for any pending events in [_controller] to be dispatched before
+ // adding [stream].
+ return future.whenComplete(() {
+ _isBound = false;
+ });
}
Future flush() {
diff --git a/web_socket_channel/lib/src/copy/web_socket.dart b/web_socket_channel/lib/src/copy/web_socket.dart
index c08b9ac..1928a34 100644
--- a/web_socket_channel/lib/src/copy/web_socket.dart
+++ b/web_socket_channel/lib/src/copy/web_socket.dart
@@ -9,7 +9,7 @@
// desired public API and to remove "dart:io" dependencies have been made.
//
// This is up-to-date as of sdk revision
-// e41fb4cafd6052157dbc1490d437045240f4773f.
+// 365f7b5a8b6ef900a5ee23913b7203569b81b175.
/// Web socket status codes used when closing a web socket connection.
abstract class WebSocketStatus {
diff --git a/web_socket_channel/lib/src/copy/web_socket_impl.dart b/web_socket_channel/lib/src/copy/web_socket_impl.dart
index 8996619..58bcaba 100644
--- a/web_socket_channel/lib/src/copy/web_socket_impl.dart
+++ b/web_socket_channel/lib/src/copy/web_socket_impl.dart
@@ -10,7 +10,7 @@
// desired public API and to remove "dart:io" dependencies have been made.
//
// This is up-to-date as of sdk revision
-// e41fb4cafd6052157dbc1490d437045240f4773f.
+// 365f7b5a8b6ef900a5ee23913b7203569b81b175.
import 'dart:async';
import 'dart:convert';
@@ -57,16 +57,21 @@
static const int RESERVED_F = 15;
}
+class _EncodedString {
+ final List<int> bytes;
+ _EncodedString(this.bytes);
+}
+
/// The web socket protocol transformer handles the protocol byte stream
-/// which is supplied through the [:handleData:]. As the protocol is processed,
+/// which is supplied through the `handleData`. As the protocol is processed,
/// it'll output frame data as either a List<int> or String.
///
/// Important information about usage: Be sure you use cancelOnError, so the
/// socket will be closed when the processor encounter an error. Not using it
/// will lead to undefined behaviour.
-// TODO(ajohnsen): make this transformer reusable?
-class _WebSocketProtocolTransformer
- implements StreamTransformer<List<int>, dynamic>, EventSink<List<int>> {
+class _WebSocketProtocolTransformer extends StreamTransformerBase<List<int>,
+ dynamic /*List<int>|_WebSocketPing|_WebSocketPong*/ >
+ implements EventSink<List<int>> {
static const int START = 0;
static const int LEN_FIRST = 1;
static const int LEN_REST = 2;
@@ -93,7 +98,7 @@
int closeCode = WebSocketStatus.NO_STATUS_RECEIVED;
String closeReason = "";
- EventSink _eventSink;
+ EventSink<dynamic /*List<int>|_WebSocketPing|_WebSocketPong*/ > _eventSink;
final bool _serverSide;
final List _maskingBytes = new List(4);
@@ -101,7 +106,8 @@
_WebSocketProtocolTransformer([this._serverSide = false]);
- Stream bind(Stream stream) {
+ Stream<dynamic /*List<int>|_WebSocketPing|_WebSocketPong*/ > bind(
+ Stream<List<int>> stream) {
return new Stream.eventTransformed(stream, (EventSink eventSink) {
if (_eventSink != null) {
throw new StateError("WebSocket transformer already used.");
@@ -319,7 +325,7 @@
switch (_currentMessageType) {
case _WebSocketMessageType.TEXT:
- _eventSink.add(UTF8.decode(bytes));
+ _eventSink.add(utf8.decode(bytes));
break;
case _WebSocketMessageType.BINARY:
_eventSink.add(bytes);
@@ -344,7 +350,7 @@
throw new WebSocketChannelException("Protocol error");
}
if (payload.length > 2) {
- closeReason = UTF8.decode(payload.sublist(2));
+ closeReason = utf8.decode(payload.sublist(2));
}
}
_state = CLOSED;
@@ -392,14 +398,15 @@
// TODO(ajohnsen): Make this transformer reusable.
class _WebSocketOutgoingTransformer
- implements StreamTransformer<dynamic, List<int>>, EventSink {
+ extends StreamTransformerBase<dynamic, List<int>> implements EventSink {
final WebSocketImpl webSocket;
EventSink<List<int>> _eventSink;
_WebSocketOutgoingTransformer(this.webSocket);
Stream<List<int>> bind(Stream stream) {
- return new Stream.eventTransformed(stream, (eventSink) {
+ return new Stream<List<int>>.eventTransformed(stream,
+ (EventSink<List<int>> eventSink) {
if (_eventSink != null) {
throw new StateError("WebSocket transformer already used");
}
@@ -422,14 +429,15 @@
if (message != null) {
if (message is String) {
opcode = _WebSocketOpcode.TEXT;
- data = UTF8.encode(message);
+ data = utf8.encode(message);
+ } else if (message is List<int>) {
+ opcode = _WebSocketOpcode.BINARY;
+ data = message;
+ } else if (message is _EncodedString) {
+ opcode = _WebSocketOpcode.TEXT;
+ data = message.bytes;
} else {
- if (message is List<int>) {
- data = message;
- opcode = _WebSocketOpcode.BINARY;
- } else {
- throw new ArgumentError(message);
- }
+ throw new ArgumentError(message);
}
} else {
opcode = _WebSocketOpcode.TEXT;
@@ -450,17 +458,24 @@
data.add((code >> 8) & 0xFF);
data.add(code & 0xFF);
if (reason != null) {
- data.addAll(UTF8.encode(reason));
+ data.addAll(utf8.encode(reason));
}
}
addFrame(_WebSocketOpcode.CLOSE, data);
_eventSink.close();
}
- void addFrame(int opcode, List<int> data) =>
- createFrame(opcode, data, webSocket._serverSide, false).forEach((e) {
- _eventSink.add(e);
- });
+ void addFrame(int opcode, List<int> data) {
+ createFrame(
+ opcode,
+ data,
+ webSocket._serverSide,
+ // Logic around _deflateHelper was removed here, since ther ewill never
+ // be a deflate helper for a cross-platform WebSocket client.
+ false).forEach((e) {
+ _eventSink.add(e);
+ });
+ }
static Iterable<List<int>> createFrame(
int opcode, List<int> data, bool serverSide, bool compressed) {
@@ -563,7 +578,7 @@
StreamSubscription _subscription;
bool _issuedPause = false;
bool _closed = false;
- final Completer _closeCompleter = new Completer();
+ final Completer _closeCompleter = new Completer<WebSocketImpl>();
Completer _completer;
_WebSocketConsumer(this.webSocket, this.sink);
diff --git a/web_socket_channel/pubspec.yaml b/web_socket_channel/pubspec.yaml
index 48f3bce..dd70f7e 100644
--- a/web_socket_channel/pubspec.yaml
+++ b/web_socket_channel/pubspec.yaml
@@ -1,11 +1,11 @@
name: web_socket_channel
-version: 1.0.6
+version: 1.0.7
description: StreamChannel wrappers for WebSockets.
author: Dart Team <misc@dartlang.org>
homepage: https://github.com/dart-lang/web_socket_channel
environment:
- sdk: '>=1.13.0 <2.0.0'
+ sdk: '>=2.0.0-dev.23.0 <2.0.0'
dependencies:
async: '>=1.3.0 <3.0.0'