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");