aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax/Label.java
diff options
context:
space:
mode:
authorGravatar Francois-Rene Rideau <tunes@google.com>2015-09-17 19:17:20 +0000
committerGravatar David Chen <dzc@google.com>2015-09-17 19:36:15 +0000
commit6c10eac70123104a2b48eaf58075374e155ed12d (patch)
tree833ef1d51ee50f0385035c3d2c49a2ea6bfc719a /src/main/java/com/google/devtools/build/lib/syntax/Label.java
parent159b74c8b96622428840bf9918cce3b95021b095 (diff)
Cleanup Skylark types some more
Clarify the criterion for being a valid Skylark value; stop claiming immutability is "the" criterion when Skylark now has mutable values; stop relying on a reflection with a magic list (this also fixes the SkylarkShell build). Clarify the criterion for determining immutable types when making a SkylarkNestedSet. Clarify and use the criterion for being a valid Skylark dict key. -- MOS_MIGRATED_REVID=103313934
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax/Label.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Label.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Label.java b/src/main/java/com/google/devtools/build/lib/syntax/Label.java
index 6c712c3ead..983f7fd84d 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Label.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Label.java
@@ -39,7 +39,7 @@ import java.io.Serializable;
*/
@SkylarkModule(name = "Label", doc = "A BUILD target identifier.")
@Immutable @ThreadSafe
-public final class Label implements Comparable<Label>, Serializable {
+public final class Label implements Comparable<Label>, Serializable, SkylarkValue {
/**
* Factory for Labels from absolute string form. e.g.
@@ -406,4 +406,16 @@ public final class Label implements Comparable<Label>, Serializable {
public static String print(Label label) {
return label == null ? "(unknown)" : label.toString();
}
+
+ @Override
+ public boolean isImmutable() {
+ return true;
+ }
+
+ @Override
+ public void write(Appendable buffer, char quotationMark) {
+ // TODO(bazel-team): make the representation readable Label(//foo),
+ // and isolate the legacy functions that want the unreadable variant.
+ Printer.write(buffer, toString(), quotationMark);
+ }
}