Merge pull request #30 from dart-lang/0.11.x-fix
Fix a bug added in 0.11.4+5
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 86345fe..3c2a25e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.11.4+6
+
+* Fix a bug introduced in 0.11.4+5 in which operator matchers broke when taking
+ lists of matchers.
+
## 0.11.4+5
* Fix all strong-mode warnings.
diff --git a/lib/src/operator_matchers.dart b/lib/src/operator_matchers.dart
index f0a4c08..6d2e1fe 100644
--- a/lib/src/operator_matchers.dart
+++ b/lib/src/operator_matchers.dart
@@ -90,8 +90,23 @@
description.addAll('(', ' or ', ')', _matchers);
}
-List<Matcher> _wrapArgs(arg0, arg1, arg2, arg3, arg4, arg5, arg6) =>
- [arg0, arg1, arg2, arg3, arg4, arg5, arg6]
- .where((e) => e != null)
- .map((e) => wrapMatcher(e))
- .toList();
+List<Matcher> _wrapArgs(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
+ Iterable args;
+ if (arg0 is List) {
+ if (arg1 != null ||
+ arg2 != null ||
+ arg3 != null ||
+ arg4 != null ||
+ arg5 != null ||
+ arg6 != null) {
+ throw new ArgumentError('If arg0 is a List, all other arguments must be'
+ ' null.');
+ }
+
+ args = arg0;
+ } else {
+ args = [arg0, arg1, arg2, arg3, arg4, arg5, arg6].where((e) => e != null);
+ }
+
+ return args.map((e) => wrapMatcher(e)).toList();
+}
diff --git a/pubspec.yaml b/pubspec.yaml
index 2c5ade9..3a21c1b 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
name: matcher
-version: 0.11.4+5
+version: 0.11.4+6
author: Dart Team <misc@dartlang.org>
description: Support for specifying test expectations
homepage: https://github.com/dart-lang/matcher