Fix analytics code (#3197)

diff --git a/lib/src/solver/result.dart b/lib/src/solver/result.dart
index cec4f75..692b05f 100644
--- a/lib/src/solver/result.dart
+++ b/lib/src/solver/result.dart
@@ -136,11 +136,9 @@
 
     final dependenciesForAnalytics = <PackageId>[];
     for (final package in packages) {
-      final source = package.source;
       // Only send analytics for packages from pub.dev.
-      if (source is HostedSource &&
-          (runningFromTest ||
-              package.description['url'] == HostedSource.pubDevUrl)) {
+      if (HostedSource.isFromPubDev(package) ||
+          (package.source is HostedSource && runningFromTest)) {
         dependenciesForAnalytics.add(package);
       }
     }
diff --git a/lib/src/source/hosted.dart b/lib/src/source/hosted.dart
index cfe582a..def4a98 100644
--- a/lib/src/source/hosted.dart
+++ b/lib/src/source/hosted.dart
@@ -99,6 +99,11 @@
 
   static String pubDevUrl = 'https://pub.dartlang.org';
 
+  static bool isFromPubDev(PackageId id) {
+    return id.source is HostedSource &&
+        (id.description as _HostedDescription).uri.toString() == pubDevUrl;
+  }
+
   /// Gets the default URL for the package server for hosted dependencies.
   Uri get defaultUrl {
     // Changing this to pub.dev raises the following concerns: