diff options
author | vladmos <vladmos@google.com> | 2017-07-05 10:25:01 -0400 |
---|---|---|
committer | John Cater <jcater@google.com> | 2017-07-05 10:59:40 -0400 |
commit | 6ff634d3f3582c74190a5dd5051a4b0253aec604 (patch) | |
tree | 0f3756c6b63539c17c409b5d8893c447b015017a /src/main/java/com/google/devtools/build/lib/cmdline | |
parent | fd04ce8e20c62acc357a9473dcde727a413e915e (diff) |
Clean up string representations for labels
If --incompatible_descriptive_string_representations is passed, labels are converted
to strings using `repr` differently: `Label("//package:name")` instead of
`"//package:name"`
This CL doesn't affect representations of other object types but provides the
necessary infrastructure for it.
PiperOrigin-RevId: 160955284
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/cmdline')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/cmdline/Label.java | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java index 9c229018b0..247ea4d98a 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java @@ -23,8 +23,8 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; -import com.google.devtools.build.lib.skylarkinterface.SkylarkPrintableValue; import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter; +import com.google.devtools.build.lib.skylarkinterface.SkylarkValue; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.util.StringCanonicalizer; import com.google.devtools.build.lib.util.StringUtilities; @@ -51,7 +51,7 @@ import javax.annotation.Nullable; ) @Immutable @ThreadSafe -public final class Label implements Comparable<Label>, Serializable, SkylarkPrintableValue, SkyKey { +public final class Label implements Comparable<Label>, Serializable, SkylarkValue, SkyKey { public static final PathFragment EXTERNAL_PACKAGE_NAME = PathFragment.create("external"); public static final PathFragment EXTERNAL_PACKAGE_FILE_NAME = PathFragment.create("WORKSPACE"); public static final String DEFAULT_REPOSITORY_DIRECTORY = "__main__"; @@ -562,8 +562,20 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkPrin } @Override + public void reprLegacy(SkylarkPrinter printer) { + printer.repr(getCanonicalForm()); + } + + @Override public void repr(SkylarkPrinter printer) { + printer.append("Label("); printer.repr(getCanonicalForm()); + printer.append(")"); + } + + @Override + public void strLegacy(SkylarkPrinter printer) { + printer.append(getCanonicalForm()); } @Override |