diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index d2aa9d6..35f7890 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -622,7 +622,7 @@
   Future<LibraryElement> getLibraryByUri(String uri) async {
     var uriObj = Uri.parse(uri);
     var fileOr = _fsState.getFileForUri(uriObj);
-    return fileOr.mapAsync(
+    return fileOr.map(
       (file) async {
         if (file == null) {
           throw ArgumentError('$uri cannot be resolved to a file.');
@@ -751,7 +751,7 @@
   /// to "idle".
   Future<ResolvedLibraryResult> getResolvedLibraryByUri(Uri uri) {
     var fileOr = _fsState.getFileForUri(uri);
-    return fileOr.mapAsync(
+    return fileOr.map(
       (file) {
         if (file == null) {
           throw ArgumentError('URI cannot be resolved: $uri');
diff --git a/pkg/analyzer/lib/src/util/either.dart b/pkg/analyzer/lib/src/util/either.dart
index e65e352..6835936 100644
--- a/pkg/analyzer/lib/src/util/either.dart
+++ b/pkg/analyzer/lib/src/util/either.dart
@@ -23,14 +23,6 @@
     }
   }
 
-  Future<T> mapAsync<T>(Future<T> Function(T1) f1, Future<T> Function(T2) f2) {
-    if (_which == 1) {
-      return f1(_value as T1);
-    } else {
-      return f2(_value as T2);
-    }
-  }
-
   @override
   String toString() => map((t) => t.toString(), (t) => t.toString());
 }
diff --git a/pkg/analyzer/test/src/util/either_test.dart b/pkg/analyzer/test/src/util/either_test.dart
index 52f4799..bd6c634 100644
--- a/pkg/analyzer/test/src/util/either_test.dart
+++ b/pkg/analyzer/test/src/util/either_test.dart
@@ -23,4 +23,14 @@
     var either = Either2<int, String>.t2('hello');
     expect(either.map((_) => throw 'unexpected', (x) => x.length), 5);
   }
+
+  void test_toString_t1() {
+    var either = Either2<int, String>.t1(42);
+    expect(either.toString(), '42');
+  }
+
+  void test_toString_t2() {
+    var either = Either2<int, String>.t2('hello');
+    expect(either.toString(), 'hello');
+  }
 }
