Merge branch '0.11.x'
diff --git a/.analysis_options b/.analysis_options
new file mode 100644
index 0000000..a10d4c5
--- /dev/null
+++ b/.analysis_options
@@ -0,0 +1,2 @@
+analyzer:
+  strong-mode: true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1ccacda..ed15206 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.12.0+2
+
+* Fix all strong-mode warnings.
+
 ## 0.12.0+1
 
 * Fix test files to use `test` instead of `unittest` pkg.
@@ -19,6 +23,15 @@
   deprecated, and is no longer necessary since all language implementations now
   support converting the type parameter to a string directly.
 
+## 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.
+
 ## 0.11.4+4
 
 * Deprecate the name parameter to `isInstanceOf`. All language implementations
diff --git a/lib/src/operator_matchers.dart b/lib/src/operator_matchers.dart
index 87ff329..5d6baed 100644
--- a/lib/src/operator_matchers.dart
+++ b/lib/src/operator_matchers.dart
@@ -89,7 +89,7 @@
 }
 
 List<Matcher> _wrapArgs(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
-  Iterable<Matcher> matchers;
+  Iterable args;
   if (arg0 is List) {
     if (arg1 != null ||
         arg2 != null ||
@@ -101,11 +101,10 @@
           ' null.');
     }
 
-    matchers = arg0;
+    args = arg0;
   } else {
-    matchers =
-        [arg0, arg1, arg2, arg3, arg4, arg5, arg6].where((e) => e != null);
+    args = [arg0, arg1, arg2, arg3, arg4, arg5, arg6].where((e) => e != null);
   }
 
-  return matchers.map((e) => wrapMatcher(e)).toList();
+  return args.map((e) => wrapMatcher(e)).toList();
 }
diff --git a/lib/src/util.dart b/lib/src/util.dart
index c773402..112819b 100644
--- a/lib/src/util.dart
+++ b/lib/src/util.dart
@@ -5,6 +5,8 @@
 import 'core_matchers.dart';
 import 'interfaces.dart';
 
+typedef bool _Predicate(value);
+
 /// A [Map] between whitespace characters and their escape sequences.
 const _escapeMap = const {
   '\n': r'\n',
@@ -36,7 +38,7 @@
 Matcher wrapMatcher(x) {
   if (x is Matcher) {
     return x;
-  } else if (x is Function) {
+  } else if (x is _Predicate) {
     return predicate(x);
   } else {
     return equals(x);
diff --git a/pubspec.yaml b/pubspec.yaml
index e5b13cc..3697fe6 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,8 +1,5 @@
 name: matcher
-
-# This version should really be 0.12.1-dev, but test depends on matcher <0.12.1,
-# so we're using + instead.
-version: 0.12.0+dev
+version: 0.12.0+2
 author: Dart Team <misc@dartlang.org>
 description: Support for specifying test expectations
 homepage: https://github.com/dart-lang/matcher