From 2e0ad9e7658d82733fa03c6323c0725e40ed36ae Mon Sep 17 00:00:00 2001
From: "nweiz@google.com" <nweiz@google.com>
Date: Mon, 4 May 2015 20:50:05 +0000
Subject: [PATCH] Fix all the analysis hints in pub.

R=rnystrom@google.com

Review URL: https://codereview.chromium.org//1101343004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@45508 260f80e4-7a28-3924-810f-c04153c831b5
---
 lib/src/ascii_tree.dart                       |  1 -
 lib/src/barback/asset_environment.dart        |  4 +--
 lib/src/barback/dart2js_transformer.dart      |  2 +-
 .../barback/dart_forwarding_transformer.dart  |  5 +---
 lib/src/command/global_deactivate.dart        |  2 --
 lib/src/command/global_list.dart              |  2 --
 lib/src/command/serve.dart                    |  3 --
 lib/src/command_runner.dart                   |  1 -
 lib/src/global_packages.dart                  |  9 ++----
 lib/src/http.dart                             | 10 +------
 lib/src/io.dart                               |  8 +----
 lib/src/oauth2.dart                           |  1 -
 lib/src/pubspec.dart                          | 12 --------
 lib/src/solver/backtracking_solver.dart       |  1 -
 lib/src/solver/version_solver.dart            | 29 -------------------
 lib/src/validator/dependency.dart             |  1 -
 lib/src/validator/license.dart                |  1 -
 lib/src/validator/name.dart                   |  1 -
 lib/src/validator/sdk_constraint.dart         |  4 ---
 19 files changed, 8 insertions(+), 89 deletions(-)

diff --git a/lib/src/ascii_tree.dart b/lib/src/ascii_tree.dart
index d197df1b..015a6e2c 100644
--- a/lib/src/ascii_tree.dart
+++ b/lib/src/ascii_tree.dart
@@ -65,7 +65,6 @@ String fromFiles(List<String> files, {String baseDir, bool showAllChildren}) {
   var root = {};
   for (var file in files) {
     if (baseDir != null) file = path.relative(file, from: baseDir);
-    var parts = path.split(file);
     var directory = root;
     for (var part in path.split(file)) {
       directory = directory.putIfAbsent(part, () => {});
diff --git a/lib/src/barback/asset_environment.dart b/lib/src/barback/asset_environment.dart
index e3c8d26d..bfd97b35 100644
--- a/lib/src/barback/asset_environment.dart
+++ b/lib/src/barback/asset_environment.dart
@@ -18,7 +18,6 @@ import '../io.dart';
 import '../log.dart' as log;
 import '../package.dart';
 import '../package_graph.dart';
-import '../sdk.dart' as sdk;
 import '../source/cached.dart';
 import '../utils.dart';
 import 'admin_server.dart';
@@ -276,7 +275,6 @@ class AssetEnvironment {
     log.fine("Executables for $packageName: $executableIds");
     if (executableIds.isEmpty) return {};
 
-    var package = graph.packages[packageName];
     var server = await servePackageBinDirectory(packageName);
     try {
       var precompiled = {};
@@ -477,7 +475,7 @@ class AssetEnvironment {
       if (!containsDart2JS && useDart2JS) {
         _builtInTransformers.addAll([
           new Dart2JSTransformer(this, mode),
-          new DartForwardingTransformer(mode)
+          new DartForwardingTransformer()
         ]);
       }
 
diff --git a/lib/src/barback/dart2js_transformer.dart b/lib/src/barback/dart2js_transformer.dart
index 9097e074..8bb15277 100644
--- a/lib/src/barback/dart2js_transformer.dart
+++ b/lib/src/barback/dart2js_transformer.dart
@@ -106,7 +106,7 @@ class Dart2JSTransformer extends Transformer implements LazyTransformer {
 
         var parsed = parseCompilationUnit(code, name: name);
         return dart.isEntrypoint(parsed);
-      } on AnalyzerErrorGroup catch (e) {
+      } on AnalyzerErrorGroup {
         // If we get a parse error, consider the asset primary so we report
         // dart2js's more detailed error message instead.
         return true;
diff --git a/lib/src/barback/dart_forwarding_transformer.dart b/lib/src/barback/dart_forwarding_transformer.dart
index d1129248..210f882d 100644
--- a/lib/src/barback/dart_forwarding_transformer.dart
+++ b/lib/src/barback/dart_forwarding_transformer.dart
@@ -17,10 +17,7 @@ import '../utils.dart';
 /// parallel to make sure the original Dart file is still available for use by
 /// Dartium.
 class DartForwardingTransformer extends Transformer {
-  /// The mode that the transformer is running in.
-  final BarbackMode _mode;
-
-  DartForwardingTransformer(this._mode);
+  DartForwardingTransformer();
 
   String get allowedExtensions => ".dart";
 
diff --git a/lib/src/command/global_deactivate.dart b/lib/src/command/global_deactivate.dart
index 595f6ffd..e64f7227 100644
--- a/lib/src/command/global_deactivate.dart
+++ b/lib/src/command/global_deactivate.dart
@@ -4,8 +4,6 @@
 
 library pub.command.global_deactivate;
 
-import 'dart:async';
-
 import '../command.dart';
 import '../log.dart' as log;
 import '../utils.dart';
diff --git a/lib/src/command/global_list.dart b/lib/src/command/global_list.dart
index 1de10730..7a05bb04 100644
--- a/lib/src/command/global_list.dart
+++ b/lib/src/command/global_list.dart
@@ -4,8 +4,6 @@
 
 library pub.command.global_list;
 
-import 'dart:async';
-
 import '../command.dart';
 
 /// Handles the `global list` pub command.
diff --git a/lib/src/command/serve.dart b/lib/src/command/serve.dart
index c5b47469..d7e9de5f 100644
--- a/lib/src/command/serve.dart
+++ b/lib/src/command/serve.dart
@@ -10,7 +10,6 @@ import 'dart:math' as math;
 import 'package:barback/barback.dart';
 
 import '../barback/asset_environment.dart';
-import '../barback/pub_package_provider.dart';
 import '../log.dart' as log;
 import '../utils.dart';
 import 'barback.dart';
@@ -27,8 +26,6 @@ class ServeCommand extends BarbackCommand {
   String get invocation => "pub serve [directories...]";
   String get docUrl => "http://dartlang.org/tools/pub/cmd/pub-serve.html";
 
-  PubPackageProvider _provider;
-
   String get hostname => argResults['hostname'];
 
   /// The base port for the servers.
diff --git a/lib/src/command_runner.dart b/lib/src/command_runner.dart
index 287a469d..96382da2 100644
--- a/lib/src/command_runner.dart
+++ b/lib/src/command_runner.dart
@@ -10,7 +10,6 @@ import 'dart:io';
 import 'package:args/args.dart';
 import 'package:args/command_runner.dart';
 import 'package:http/http.dart' as http;
-import 'package:stack_trace/stack_trace.dart';
 
 import 'command/build.dart';
 import 'command/cache.dart';
diff --git a/lib/src/global_packages.dart b/lib/src/global_packages.dart
index d8c72503..335cf8e2 100644
--- a/lib/src/global_packages.dart
+++ b/lib/src/global_packages.dart
@@ -151,8 +151,6 @@ class GlobalPackages {
   /// Installs the package [dep] and its dependencies into the system cache.
   Future _installInCache(PackageDep dep, List<String> executables,
       {bool overwriteBinStubs}) async {
-    var source = cache.sources[dep.source];
-
     // Create a dummy package with just [dep] so we can do resolution on it.
     var root = new Package.inMemory(new Pubspec("pub global activate",
         dependencies: [dep], sources: cache.sources));
@@ -255,7 +253,7 @@ class GlobalPackages {
         log.message('Package ${log.bold(name)} is currently active at version '
             '${log.bold(id.version)}.');
       }
-    } on IOException catch (error) {
+    } on IOException {
       // If we couldn't read the lock file, it's not activated.
       return null;
     }
@@ -287,14 +285,14 @@ class GlobalPackages {
     var lockFile;
     try {
       lockFile = new LockFile.load(lockFilePath, cache.sources);
-    } on IOException catch (error) {
+    } on IOException {
       var oldLockFilePath = p.join(_directory, '$name.lock');
       try {
         // TODO(nweiz): This looks for Dart 1.6's old lockfile location.
         // Remove it when Dart 1.6 is old enough that we don't think anyone
         // will have these lockfiles anymore (issue 20703).
         lockFile = new LockFile.load(oldLockFilePath, cache.sources);
-      } on IOException catch (error) {
+      } on IOException {
         // If we couldn't read the lock file, it's not activated.
         dataError("No active package ${log.bold(name)}.");
       }
@@ -478,7 +476,6 @@ class GlobalPackages {
     }
 
     if (executables.isNotEmpty) {
-      var packages = pluralize("package", executables.length);
       var message = new StringBuffer("Binstubs exist for non-activated "
           "packages:\n");
       executables.forEach((package, executableNames) {
diff --git a/lib/src/http.dart b/lib/src/http.dart
index 3d0453a0..27e90a07 100644
--- a/lib/src/http.dart
+++ b/lib/src/http.dart
@@ -53,14 +53,6 @@ class _PubHttpClient extends http.BaseClient {
     request.headers[HttpHeaders.USER_AGENT] = "Dart pub ${sdk.version}";
     _logRequest(request);
 
-    // TODO(nweiz): remove this when issue 4061 is fixed.
-    var stackTrace;
-    try {
-      throw null;
-    } catch (_, localStackTrace) {
-      stackTrace = localStackTrace;
-    }
-
     var timeoutLength = HTTP_TIMEOUT;
     var timeoutString = request.headers.remove('Pub-Request-Timeout');
     if (timeoutString == 'None') {
@@ -244,7 +236,7 @@ Map parseJsonResponse(http.Response response) {
   var value;
   try {
     value = JSON.decode(response.body);
-  } on FormatException catch (e) {
+  } on FormatException {
     invalidServerResponse(response);
   }
   if (value is! Map) invalidServerResponse(response);
diff --git a/lib/src/io.dart b/lib/src/io.dart
index d3c779b3..687157a8 100644
--- a/lib/src/io.dart
+++ b/lib/src/io.dart
@@ -418,7 +418,7 @@ void renameDir(String from, String to) {
     log.io("Renaming directory $from to $to.");
     try {
       new Directory(from).renameSync(to);
-    } on IOException catch (error) {
+    } on IOException {
       // Ensure that [to] isn't left in an inconsistent state. See issue 12436.
       if (entryExists(to)) deleteEntry(to);
       rethrow;
@@ -1017,9 +1017,3 @@ class PubProcessResult {
 
   bool get success => exitCode == exit_codes.SUCCESS;
 }
-
-/// Gets a [Uri] for [uri], which can either already be one, or be a [String].
-Uri _getUri(uri) {
-  if (uri is Uri) return uri;
-  return Uri.parse(uri);
-}
diff --git a/lib/src/oauth2.dart b/lib/src/oauth2.dart
index 8de110c0..d9f068f6 100644
--- a/lib/src/oauth2.dart
+++ b/lib/src/oauth2.dart
@@ -83,7 +83,6 @@ void clearCredentials(SystemCache cache) {
 /// re-run [fn] if a recoverable authorization error is detected.
 Future withClient(SystemCache cache, Future fn(Client client)) {
   return _getClient(cache).then((client) {
-    var completer = new Completer();
     return fn(client).whenComplete(() {
       client.close();
       // Be sure to save the credentials even when an error happens.
diff --git a/lib/src/pubspec.dart b/lib/src/pubspec.dart
index c772402d..13cce16e 100644
--- a/lib/src/pubspec.dart
+++ b/lib/src/pubspec.dart
@@ -137,7 +137,6 @@ class Pubspec {
           fields.nodes['transformers'].span);
     }
 
-    var i = 0;
     _transformers = transformers.nodes.map((phase) {
       var phaseNodes = phase is YamlList ? phase.nodes : [phase];
       return phaseNodes.map((transformerNode) {
@@ -265,10 +264,6 @@ class Pubspec {
     }
 
     yaml.nodes.forEach((key, value) {
-      // Don't allow path separators or other stuff meaningful to the shell.
-      validateName(name, description) {
-      }
-
       if (key.value is! String) {
         _error('"executables" keys must be strings.', key.span);
       }
@@ -556,13 +551,6 @@ class Pubspec {
 
   /// Throws a [PubspecException] with the given message.
   void _error(String message, SourceSpan span) {
-    var name;
-    try {
-      name = this.name;
-    } on PubspecException catch (_) {
-      // [name] is null.
-    }
-
     throw new PubspecException(message, span);
   }
 }
diff --git a/lib/src/solver/backtracking_solver.dart b/lib/src/solver/backtracking_solver.dart
index a9b84e37..f746a56f 100644
--- a/lib/src/solver/backtracking_solver.dart
+++ b/lib/src/solver/backtracking_solver.dart
@@ -395,7 +395,6 @@ class BacktrackingSolver {
       // Don't get stuck in cycles.
       if (visited.contains(package)) return;
       visited.add(package);
-      var depender = dependers[package].forEach(walk);
     }
 
     walk(dependency);
diff --git a/lib/src/solver/version_solver.dart b/lib/src/solver/version_solver.dart
index bc2dfb12..0a71f009 100644
--- a/lib/src/solver/version_solver.dart
+++ b/lib/src/solver/version_solver.dart
@@ -259,35 +259,6 @@ class PubspecCache {
 
     return results;
   }
-
-  /// This dumps the set of packages that were looked at by the solver to a
-  /// JSON map whose format matches the map passed to [testResolve] in the
-  /// version solver unit tests.
-  ///
-  /// If a real-world version solve is failing, this can be used to mirror that
-  /// data to build a regression test using mock packages.
-  String _debugDescribePackageGraph() {
-    var packages = {};
-    _pubspecs.forEach((id, pubspec) {
-      var deps = {};
-      packages["${id.name} ${id.version}"] = deps;
-
-      for (var dep in pubspec.dependencies) {
-        deps[dep.name] = dep.constraint.toString();
-      }
-    });
-
-    // Add in the packages that we know of but didn't need their pubspecs.
-    _versions.forEach((ref, versions) {
-      for (var id in versions) {
-        packages.putIfAbsent("${id.name} ${id.version}", () => {});
-      }
-    });
-
-    // TODO(rnystrom): Include dev dependencies and dependency overrides.
-
-    return JSON.encode(packages);
-  }
 }
 
 /// A reference from a depending package to a package that it depends on.
diff --git a/lib/src/validator/dependency.dart b/lib/src/validator/dependency.dart
index 88282fb0..fe30ac59 100644
--- a/lib/src/validator/dependency.dart
+++ b/lib/src/validator/dependency.dart
@@ -11,7 +11,6 @@ import 'package:pub_semver/pub_semver.dart';
 import '../entrypoint.dart';
 import '../log.dart' as log;
 import '../package.dart';
-import '../utils.dart';
 import '../validator.dart';
 
 /// The range of all pub versions that don't support `^` version constraints.
diff --git a/lib/src/validator/license.dart b/lib/src/validator/license.dart
index 46ca112c..067765bb 100644
--- a/lib/src/validator/license.dart
+++ b/lib/src/validator/license.dart
@@ -9,7 +9,6 @@ import 'dart:async';
 import 'package:path/path.dart' as path;
 
 import '../entrypoint.dart';
-import '../utils.dart';
 import '../validator.dart';
 
 /// A validator that checks that a LICENSE-like file exists.
diff --git a/lib/src/validator/name.dart b/lib/src/validator/name.dart
index cdee078b..94e2024f 100644
--- a/lib/src/validator/name.dart
+++ b/lib/src/validator/name.dart
@@ -9,7 +9,6 @@ import 'dart:async';
 import 'package:path/path.dart' as path;
 
 import '../entrypoint.dart';
-import '../utils.dart';
 import '../validator.dart';
 
 /// Dart reserved words, from the Dart spec.
diff --git a/lib/src/validator/sdk_constraint.dart b/lib/src/validator/sdk_constraint.dart
index e409f52f..b192b059 100644
--- a/lib/src/validator/sdk_constraint.dart
+++ b/lib/src/validator/sdk_constraint.dart
@@ -6,11 +6,7 @@ library pub.validator.sdk_constraint;
 
 import 'dart:async';
 
-import 'package:pub_semver/pub_semver.dart';
-
 import '../entrypoint.dart';
-import '../log.dart' as log;
-import '../package.dart';
 import '../validator.dart';
 
 /// A validator that validates that a package's SDK constraint doesn't use the
-- 
GitLab