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
