Clean up string representations for aspects

If --incompatible_descriptive_string_representations is passed, aspects are
converted to strings using `str`, `repr` and `print` functions differently
(more descriptive, without leaking information that shouldn't be accessible).

PiperOrigin-RevId: 161116840
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspect.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspect.java
index b3bce84..9940876 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspect.java
@@ -97,14 +97,13 @@
 
   @Override
   public void repr(SkylarkPrinter printer) {
-    printer.append("Aspect:");
-    implementation.repr(printer);
+    printer.append("<aspect>");
   }
 
   @Override
   public void reprLegacy(SkylarkPrinter printer) {
     printer.append("Aspect:");
-    implementation.reprLegacy(printer);
+    printer.repr(implementation);
   }
 
   public String getName() {
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkStringRepresentationsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkStringRepresentationsTest.java
index d503ec9..35d4d1d 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkStringRepresentationsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkStringRepresentationsTest.java
@@ -232,6 +232,13 @@
   }
 
   @Test
+  public void testStringRepresentations_Aspects() throws Exception {
+    setSkylarkSemanticsOptions("--incompatible_descriptive_string_representations=true");
+
+    assertStringRepresentation("aspect(implementation=str)", "<aspect>");
+  }
+
+  @Test
   public void testLegacyStringRepresentations_Labels() throws Exception {
     setSkylarkSemanticsOptions("--incompatible_descriptive_string_representations=false");