Fix pub now that the VM no longer supports "--preview-dart-2". (#1928)

* Fix pub now that the VM no longer supports "--preview-dart-2".

Pub fails to create snapshots on install because it's passing a flag
the VM no longer recognizes. This fixes that.

Also fixed a couple of runtime cast errors in a test.

* Create Dart 1 snapshot in Dart 1 mode.
diff --git a/.travis.yml b/.travis.yml
index 2b14c55..a86e8d5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,8 +16,8 @@
 # Create a snapshot to improve startup time. Tests will automatically use this
 # snapshot if it's available.
 before_script:
-  - dart --no-checked --snapshot=bin/pub.dart.snapshot --snapshot-kind=app-jit bin/pub.dart --help
-  - dart --preview-dart-2 --snapshot=bin/pub.dart.snapshot.dart2 bin/pub.dart
+  - dart --no-preview-dart-2 --no-checked --snapshot=bin/pub.dart.snapshot --snapshot-kind=app-jit bin/pub.dart --help
+  - dart --snapshot=bin/pub.dart.snapshot.dart2 bin/pub.dart
 
 # Only building these branches means that we don't run two builds for each pull
 # request.
diff --git a/lib/src/dart.dart b/lib/src/dart.dart
index d9ff204..136a47c 100644
--- a/lib/src/dart.dart
+++ b/lib/src/dart.dart
@@ -49,12 +49,15 @@
     {Uri packagesFile, String name}) async {
   name = log.bold(name ?? executableUrl.toString());
 
-  var dart1Args = ['--snapshot=$snapshotPath', executableUrl.toString()];
+  var dart1Args = [
+    '--no-preview-dart-2',
+    '--snapshot=$snapshotPath',
+    executableUrl.toString()
+  ];
 
   var dart2Path = '$snapshotPath.dart2';
-  var dart2Args = isDart2
-      ? ['--preview-dart-2', '--snapshot=$dart2Path', executableUrl.toString()]
-      : null;
+  var dart2Args =
+      isDart2 ? ['--snapshot=$dart2Path', executableUrl.toString()] : null;
 
   if (packagesFile != null) {
     dart1Args.insert(0, "--packages=$packagesFile");
diff --git a/test/ascii_tree_test.dart b/test/ascii_tree_test.dart
index b4f5f6f..1be1c3f 100644
--- a/test/ascii_tree_test.dart
+++ b/test/ascii_tree_test.dart
@@ -150,27 +150,27 @@
 
     test('a complex example', () {
       var map = {
-        ".gitignore": {},
-        "README.md": {},
-        "TODO": {},
+        ".gitignore": <String, Map>{},
+        "README.md": <String, Map>{},
+        "TODO": <String, Map>{},
         "example": {
-          "console_example.dart": {},
-          "main.dart": {},
-          "web copy": {"web_example.dart": {}},
+          "console_example.dart": <String, Map>{},
+          "main.dart": <String, Map>{},
+          "web copy": {"web_example.dart": <String, Map>{}},
         },
-        "lib": {"path.dart": {}},
-        "pubspec.yaml": {},
+        "lib": {"path.dart": <String, Map>{}},
+        "pubspec.yaml": <String, Map>{},
         "test": {
-          "absolute_test.dart": {},
-          "basename_test.dart": {},
-          "dirname_test.dart": {},
-          "extension_test.dart": {},
-          "is_absolute_test.dart": {},
-          "is_relative_test.dart": {},
-          "join_test.dart": {},
-          "normalize_test.dart": {},
-          "relative_test.dart": {},
-          "split_test.dart": {}
+          "absolute_test.dart": <String, Map>{},
+          "basename_test.dart": <String, Map>{},
+          "dirname_test.dart": <String, Map>{},
+          "extension_test.dart": <String, Map>{},
+          "is_absolute_test.dart": <String, Map>{},
+          "is_relative_test.dart": <String, Map>{},
+          "join_test.dart": <String, Map>{},
+          "normalize_test.dart": <String, Map>{},
+          "relative_test.dart": <String, Map>{},
+          "split_test.dart": <String, Map>{}
         }
       };
 
@@ -204,18 +204,18 @@
   test('does not elide children if showAllChildren is true', () {
     var map = {
       'dir': {
-        'a.dart': {},
-        'b.dart': {},
-        'c.dart': {},
-        'd.dart': {},
-        'e.dart': {},
-        'f.dart': {},
-        'g.dart': {},
-        'h.dart': {},
-        'i.dart': {},
-        'j.dart': {},
-        'k.dart': {},
-        'l.dart': {},
+        'a.dart': <String, Map>{},
+        'b.dart': <String, Map>{},
+        'c.dart': <String, Map>{},
+        'd.dart': <String, Map>{},
+        'e.dart': <String, Map>{},
+        'f.dart': <String, Map>{},
+        'g.dart': <String, Map>{},
+        'h.dart': <String, Map>{},
+        'i.dart': <String, Map>{},
+        'j.dart': <String, Map>{},
+        'k.dart': <String, Map>{},
+        'l.dart': <String, Map>{},
       }
     };
     expect(tree.fromMap(map, showAllChildren: true), equals("""
diff --git a/test/test_pub.dart b/test/test_pub.dart
index 42574a1..809c5f9 100644
--- a/test/test_pub.dart
+++ b/test/test_pub.dart
@@ -378,7 +378,7 @@
   if (fileExists(snapshotPath)) pubPath = snapshotPath;
 
   var dartArgs = [await PackageResolver.current.processArgument];
-  if (dart2) dartArgs.add('--preview-dart-2');
+  if (!dart2) dartArgs.add('--no-preview-dart-2');
   dartArgs..addAll([pubPath, '--verbose'])..addAll(args);
 
   return await PubProcess.start(dartBin, dartArgs,