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 ee00a46..86345fe 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 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/iterable_matchers.dart b/lib/src/iterable_matchers.dart
index 118575a..7185e92 100644
--- a/lib/src/iterable_matchers.dart
+++ b/lib/src/iterable_matchers.dart
@@ -120,8 +120,8 @@
   final List _expectedValues;
 
   _UnorderedEquals(Iterable expected)
-      : super(expected.map(equals)),
-        _expectedValues = expected.toList();
+      : _expectedValues = expected.toList(),
+        super(expected.map(equals));
 
   Description describe(Description description) => description
       .add('equals ')
diff --git a/lib/src/operator_matchers.dart b/lib/src/operator_matchers.dart
index 6824c5b..f0a4c08 100644
--- a/lib/src/operator_matchers.dart
+++ b/lib/src/operator_matchers.dart
@@ -90,24 +90,8 @@
       description.addAll('(', ' or ', ')', _matchers);
 }
 
-List<Matcher> _wrapArgs(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
-  Iterable<Matcher> matchers;
-  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.');
-    }
-
-    matchers = arg0;
-  } else {
-    matchers =
-        [arg0, arg1, arg2, arg3, arg4, arg5, arg6].where((e) => e != null);
-  }
-
-  return matchers.map((e) => wrapMatcher(e)).toList();
-}
+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();
diff --git a/lib/src/util.dart b/lib/src/util.dart
index 8706009..a6b3ab4 100644
--- a/lib/src/util.dart
+++ b/lib/src/util.dart
@@ -7,6 +7,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',
@@ -38,7 +40,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 47e8e84..2c5ade9 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: matcher
-version: 0.11.4+4
+version: 0.11.4+5
 author: Dart Team <misc@dartlang.org>
 description: Support for specifying test expectations
 homepage: https://github.com/dart-lang/matcher
