Update to Dart 2.10 (#583)

diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile
index 0e7af7c..c491b1d 100644
--- a/.gitpod.Dockerfile
+++ b/.gitpod.Dockerfile
@@ -6,8 +6,8 @@
 # More information: https://www.gitpod.io/docs/config-docker/
 
 RUN sudo apt-get update && \
-    wget https://storage.googleapis.com/dart-archive/channels/stable/release/2.9.3/linux_packages/dart_2.9.3-1_amd64.deb && \
-    sudo dpkg -i dart_2.9.3-1_amd64.deb && \
+    wget https://storage.googleapis.com/dart-archive/channels/stable/release/2.10.0/linux_packages/dart_2.10.0-1_amd64.deb && \
+    sudo dpkg -i dart_2.10.0-1_amd64.deb && \
     sudo apt-get install -y protobuf-compiler redis && \
     sudo apt-get update && \
     echo "export PATH=\"\$PATH:/usr/lib/dart/bin:\$HOME/.pub-cache/bin\"" >> $HOME/.bashrc && \
diff --git a/.travis.yml b/.travis.yml
index eafa852..ec61b89 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,8 +3,9 @@
   - gem install coveralls-lcov
 dart:
   # Keep this value aligned with min SDK value in pubspec.yaml and FROM line of Dockerfile
-  - "2.9.3"
-  - beta
+  - "2.10.0"
+  # Beta is trailing stable.
+  # - beta
 
 # Use Ubuntu 18.04 (Bionic Beaver) 
 # https://docs.travis-ci.com/user/reference/overview/#virtualization-environments
diff --git a/Dockerfile b/Dockerfile
index 68c53d1..b067c4a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
 # Keep aligned with min SDK in pubspec.yaml and Dart test version in .travis.yml
-FROM google/dart:2.9.3
+FROM google/dart:2.10.0
 
 # The specific commit that dart-services should use. This should be kept
 # in sync with the flutter submodule in the dart-services repo.
diff --git a/app.yaml b/app.yaml
index c927f97..9806cba 100644
--- a/app.yaml
+++ b/app.yaml
@@ -19,6 +19,8 @@
 network:
   name: vpc-dart-services
 
+service: default
+
 skip_files:
 - ^\.git/.*$
 
diff --git a/cloud_run.Dockerfile b/cloud_run.Dockerfile
index a3c06f0..c94ed30 100644
--- a/cloud_run.Dockerfile
+++ b/cloud_run.Dockerfile
@@ -1,5 +1,5 @@
 # Keep aligned with min SDK in pubspec.yaml and Dart test version in .travis.yml
-FROM google/dart:2.9.3
+FROM google/dart:2.10.0
 
 # The specific commit that dart-services should use. This should be kept
 # in sync with the flutter submodule in the dart-services repo.
diff --git a/example/pubspec.lock b/example/pubspec.lock
index 300c382..5157607 100644
--- a/example/pubspec.lock
+++ b/example/pubspec.lock
@@ -7,14 +7,14 @@
       name: _fe_analyzer_shared
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "6.0.0"
+    version: "7.0.0"
   analyzer:
     dependency: transitive
     description:
       name: analyzer
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.39.15"
+    version: "0.39.17"
   archive:
     dependency: transitive
     description:
@@ -77,21 +77,21 @@
       name: build_resolvers
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.10"
+    version: "1.3.11"
   build_runner:
     dependency: "direct dev"
     description:
       name: build_runner
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.10.0"
+    version: "1.10.2"
   build_runner_core:
     dependency: transitive
     description:
       name: build_runner_core
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "5.2.0"
+    version: "6.0.1"
   build_web_compilers:
     dependency: "direct dev"
     description:
@@ -133,21 +133,21 @@
       name: cli_util
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.4"
+    version: "0.2.0"
   code_builder:
     dependency: transitive
     description:
       name: code_builder
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "3.4.0"
+    version: "3.4.1"
   codemirror:
     dependency: "direct main"
     description:
       name: codemirror
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.5.19+5.56.0"
+    version: "0.5.20+5.57.0"
   collection:
     dependency: transitive
     description:
@@ -273,14 +273,14 @@
       name: meta
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.2"
+    version: "1.2.3"
   mime:
     dependency: transitive
     description:
       name: mime
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.9.6+3"
+    version: "0.9.7"
   node_interop:
     dependency: transitive
     description:
@@ -364,7 +364,7 @@
       name: shelf
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.7.7"
+    version: "0.7.9"
   shelf_web_socket:
     dependency: transitive
     description:
@@ -457,4 +457,4 @@
     source: hosted
     version: "2.2.1"
 sdks:
-  dart: ">=2.8.1 <3.0.0"
+  dart: ">=2.10.0-0.0 <3.0.0"
diff --git a/pubspec.lock b/pubspec.lock
index 34cbbc2..5c7aefe 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -14,7 +14,7 @@
       name: _fe_analyzer_shared
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "6.0.0"
+    version: "7.0.0"
   analysis_server_lib:
     dependency: "direct main"
     description:
@@ -28,7 +28,7 @@
       name: analyzer
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.39.16"
+    version: "0.39.17"
   appengine:
     dependency: "direct main"
     description:
@@ -98,14 +98,14 @@
       name: build_runner
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.10.0"
+    version: "1.10.2"
   build_runner_core:
     dependency: transitive
     description:
       name: build_runner_core
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "5.2.0"
+    version: "6.0.1"
   built_collection:
     dependency: transitive
     description:
@@ -140,7 +140,7 @@
       name: cli_util
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.4"
+    version: "0.2.0"
   code_builder:
     dependency: transitive
     description:
@@ -595,7 +595,7 @@
       name: tuneup
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.3.6+2"
+    version: "0.3.7"
   typed_data:
     dependency: transitive
     description:
@@ -646,4 +646,4 @@
     source: hosted
     version: "2.2.1"
 sdks:
-  dart: ">=2.9.3 <3.0.0"
+  dart: ">=2.10.0 <3.0.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 0b250a7..dd8028b 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,11 +3,10 @@
 
 environment:
   # Keep SDK aligned with .travis.yml and FROM line of Dockerfile
-  sdk: ^2.9.3
+  sdk: ^2.10.0
 
 dependencies:
-  # TODO(domesticmouse): unpin analyzer after we update to Dart 2.10
-  analyzer: 0.39.16
+  analyzer: ^0.39.17
   analysis_server_lib: ^0.1.4
   appengine: ^0.12.0
   args: ^1.6.0
diff --git a/test/analysis_server_test.dart b/test/analysis_server_test.dart
index 4497fee..ca0218d 100644
--- a/test/analysis_server_test.dart
+++ b/test/analysis_server_test.dart
@@ -80,7 +80,7 @@
       expect(completionsContains(results, 'codeUnitAt'), false);
     });
 
-    test('repro #126 - completions polluted on second request', () {
+    test('repro #126 - completions polluted on second request', () async {
       // https://github.com/dart-lang/dart-services/issues/126
       return analysisServer.complete(completionFilterCode, 17).then((results) {
         return analysisServer
@@ -98,7 +98,6 @@
       // We're testing here that we don't have any path imports - we don't want
       // to enable browsing the file system.
       final testCode = "import '/'; main() { int a = 0; a. }";
-
       final results = await analysisServer.complete(testCode, 9);
       final completions = results.completions;
 
@@ -128,12 +127,11 @@
       );
     });
 
-    test('import_and_other_test', () {
+    test('import_and_other_test', () async {
       final testCode = "import '/'; main() { int a = 0; a. }";
+      final results = await analysisServer.complete(testCode, 34);
 
-      return analysisServer.complete(testCode, 34).then((results) {
-        expect(completionsContains(results, 'abs'), true);
-      });
+      expect(completionsContains(results, 'abs'), true);
     });
 
     test('simple_quickFix', () async {