Allow labels in the '--aspects' parameter.

--
MOS_MIGRATED_REVID=139573590
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java
index 1d3b0fd..d4366fa 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java
@@ -26,9 +26,8 @@
 import com.google.devtools.build.lib.packages.AspectClass;
 import com.google.devtools.build.lib.packages.AspectParameters;
 import com.google.devtools.build.lib.packages.Package;
-import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.devtools.build.lib.syntax.SkylarkImport;
 import com.google.devtools.build.skyframe.SkyFunctionName;
-
 import javax.annotation.Nullable;
 
 /**
@@ -223,20 +222,20 @@
     private final Label targetLabel;
     private final BuildConfiguration aspectConfiguration;
     private final BuildConfiguration targetConfiguration;
-    private final PathFragment extensionFile;
+    private final SkylarkImport skylarkImport;
     private final String skylarkValueName;
 
     private SkylarkAspectLoadingKey(
         Label targetLabel,
         BuildConfiguration aspectConfiguration,
         BuildConfiguration targetConfiguration,
-        PathFragment extensionFile,
+        SkylarkImport skylarkImport,
         String skylarkFunctionName) {
       this.targetLabel = targetLabel;
       this.aspectConfiguration = aspectConfiguration;
       this.targetConfiguration = targetConfiguration;
 
-      this.extensionFile = extensionFile;
+      this.skylarkImport = skylarkImport;
       this.skylarkValueName = skylarkFunctionName;
     }
 
@@ -245,16 +244,16 @@
       return SkyFunctions.LOAD_SKYLARK_ASPECT;
     }
 
-    public PathFragment getExtensionFile() {
-      return extensionFile;
+    public Label getTargetLabel() {
+      return targetLabel;
     }
 
     public String getSkylarkValueName() {
       return skylarkValueName;
     }
 
-    public Label getTargetLabel() {
-      return targetLabel;
+    public SkylarkImport getSkylarkImport() {
+      return skylarkImport;
     }
 
     /**
@@ -274,7 +273,35 @@
     @Override
     public String getDescription() {
       // Skylark aspects are referred to on command line with <file>%<value ame>
-      return String.format("%s%%%s of %s", extensionFile.toString(), skylarkValueName, targetLabel);
+      return String.format("%s%%%s of %s", skylarkImport.getImportString(),
+          skylarkValueName, targetLabel);
+    }
+
+    @Override
+    public int hashCode() {
+      return Objects.hashCode(targetLabel,
+          aspectConfiguration,
+          targetConfiguration,
+          skylarkImport,
+          skylarkValueName);
+    }
+
+    @Override
+    public boolean equals(Object o) {
+      if (o == this) {
+        return true;
+      }
+
+      if (!(o instanceof SkylarkAspectLoadingKey)) {
+        return false;
+      }
+      SkylarkAspectLoadingKey that = (SkylarkAspectLoadingKey) o;
+      return Objects.equal(targetLabel, that.targetLabel)
+          && Objects.equal(aspectConfiguration, that.aspectConfiguration)
+          && Objects.equal(targetConfiguration, that.targetConfiguration)
+          && Objects.equal(skylarkImport, that.skylarkImport)
+          && Objects.equal(skylarkValueName, that.skylarkValueName);
+
     }
   }
 
@@ -350,9 +377,9 @@
       Label targetLabel,
       BuildConfiguration aspectConfiguration,
       BuildConfiguration targetConfiguration,
-      PathFragment skylarkFile,
+      SkylarkImport skylarkImport,
       String skylarkExportName) {
     return new SkylarkAspectLoadingKey(
-        targetLabel, aspectConfiguration, targetConfiguration, skylarkFile, skylarkExportName);
+        targetLabel, aspectConfiguration, targetConfiguration, skylarkImport, skylarkExportName);
   }
 }