diff --git a/CHANGELOG.md b/CHANGELOG.md
index af9ce95..e175d94 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.11.0
+
+* Removed deprecated matchers.
+
 ## 0.10.1+1
 
 * Get the tests passing when run on dart2js in minified mode.
diff --git a/lib/src/error_matchers.dart b/lib/src/error_matchers.dart
index cb716f5..dca1759 100644
--- a/lib/src/error_matchers.dart
+++ b/lib/src/error_matchers.dart
@@ -7,28 +7,6 @@
 import 'core_matchers.dart';
 import 'interfaces.dart';
 
-/// **DEPRECATED**
-///
-/// Will be removed in the next major release.
-// TODO(kevmoo): re-deprecate once 19173 is resolved
-//@deprecated
-const Matcher isAbstractClassInstantiationError =
-  const _AbstractClassInstantiationError();
-
-/// **DEPRECATED**
-///
-/// Will be removed in the next major release.
-// TODO(kevmoo): re-deprecate once 19173 is resolved
-//@deprecated
-const Matcher throwsAbstractClassInstantiationError =
-  const Throws(isAbstractClassInstantiationError);
-
-class _AbstractClassInstantiationError extends TypeMatcher {
-  const _AbstractClassInstantiationError() :
-  super("AbstractClassInstantiationError");
-  bool matches(item, Map matchState) => item is AbstractClassInstantiationError;
-}
-
 /// A matcher for ArgumentErrors.
 const Matcher isArgumentError = const _ArgumentError();
 
@@ -76,20 +54,6 @@
   bool matches(item, Map matchState) => item is Exception;
 }
 
-/// **DEPRECATED**
-///
-/// Will be removed in the next major release.
-// TODO(kevmoo): re-deprecate once 19173 is resolved
-//@deprecated
-const Matcher isFallThroughError = const _FallThroughError();
-
-/// **DEPRECATED**
-///
-/// Will be removed in the next major release.
-// TODO(kevmoo): re-deprecate once 19173 is resolved
-//@deprecated
-const Matcher throwsFallThroughError = const Throws(isFallThroughError);
-
 class _FallThroughError extends TypeMatcher {
   const _FallThroughError(): super("FallThroughError");
   bool matches(item, Map matchState) => item is FallThroughError;
diff --git a/pubspec.yaml b/pubspec.yaml
index 6f6f277..4612c58 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,10 +1,9 @@
 name: matcher
-version: 0.10.1+1
+version: 0.11.0
 author: Dart Team <misc@dartlang.org>
 description: Support for specifying test expectations
-homepage: http://www.dartlang.org
+homepage: https://pub.dartlang.org/packages/matcher
 environment:
   sdk: '>=1.0.0 <2.0.0'
-documentation: http://api.dartlang.org/docs/pkg/matcher
 dev_dependencies:
   unittest: '>=0.10.0 <0.12.0'
diff --git a/test/deprecated_matchers_test.dart b/test/deprecated_matchers_test.dart
deleted file mode 100644
index b6acc1c..0000000
--- a/test/deprecated_matchers_test.dart
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (c) 2012, 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.
-
-library matcher.deprecated_matchers_test;
-
-import 'package:matcher/matcher.dart';
-import 'package:unittest/unittest.dart' show test, group;
-
-import 'test_utils.dart';
-
-void main() {
-  initUtils();
-
-  test('throwsAbstractClassInstantiationError', () {
-    expect(() => new _AbstractClass(), throwsAbstractClassInstantiationError);
-  });
-
-  test('throwsFallThroughError', () {
-    expect(() {
-      var a = 0;
-      switch (a) {
-        case 0:
-          a += 1;
-        case 1:
-          return;
-      }
-    }, throwsFallThroughError);
-  });
-}
-
-abstract class _AbstractClass {
-}
