diff options
author | 2015-09-17 19:17:20 +0000 | |
---|---|---|
committer | 2015-09-17 19:36:15 +0000 | |
commit | 6c10eac70123104a2b48eaf58075374e155ed12d (patch) | |
tree | 833ef1d51ee50f0385035c3d2c49a2ea6bfc719a /src/main/java/com/google/devtools/build/lib/syntax/Printer.java | |
parent | 159b74c8b96622428840bf9918cce3b95021b095 (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/Printer.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/Printer.java | 36 |
1 files changed, 7 insertions, 29 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Printer.java b/src/main/java/com/google/devtools/build/lib/syntax/Printer.java index 2586306bf0..bc00795625 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/Printer.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/Printer.java @@ -15,7 +15,6 @@ package com.google.devtools.build.lib.syntax; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; -import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.vfs.PathFragment; import java.io.IOException; @@ -108,15 +107,15 @@ public final class Printer { if (o == null) { throw new NullPointerException(); // Java null is not a build language value. + } else if (o instanceof SkylarkValue) { + ((SkylarkValue) o).write(buffer, quotationMark); + } else if (o instanceof String) { writeString(buffer, (String) o, quotationMark); } else if (o instanceof Integer || o instanceof Double) { append(buffer, o.toString()); - } else if (o == Runtime.NONE) { - append(buffer, "None"); - } else if (o == Boolean.TRUE) { append(buffer, "True"); @@ -125,11 +124,7 @@ public final class Printer { } else if (o instanceof List<?>) { List<?> seq = (List<?>) o; - printList(buffer, seq, EvalUtils.isImmutable(seq), quotationMark); - - } else if (o instanceof SkylarkList) { - SkylarkList list = (SkylarkList) o; - printList(buffer, list.toList(), list.isTuple(), quotationMark); + printList(buffer, seq, EvalUtils.isTuple(seq), quotationMark); } else if (o instanceof Map<?, ?>) { Map<?, ?> dict = (Map<?, ?>) o; @@ -141,28 +136,11 @@ public final class Printer { append(buffer, ": "); write(buffer, entry.getValue(), quotationMark); - } else if (o instanceof SkylarkNestedSet) { - SkylarkNestedSet set = (SkylarkNestedSet) o; - append(buffer, "set("); - printList(buffer, set, "[", ", ", "]", null, quotationMark); - Order order = set.getOrder(); - if (order != Order.STABLE_ORDER) { - append(buffer, ", order = \"" + order.getName() + "\""); - } - append(buffer, ")"); - - } else if (o instanceof BaseFunction) { - BaseFunction func = (BaseFunction) o; - append(buffer, "<function " + func.getName() + ">"); - - } else if (o instanceof Label) { - write(buffer, o.toString(), quotationMark); - } else if (o instanceof PathFragment) { append(buffer, ((PathFragment) o).getPathString()); - } else if (o instanceof SkylarkValue) { - ((SkylarkValue) o).write(buffer, quotationMark); + } else if (o instanceof Class<?>) { + append(buffer, EvalUtils.getDataTypeNameFromClass((Class<?>) o)); } else { append(buffer, o.toString()); @@ -271,7 +249,7 @@ public final class Printer { * @param quotationMark The quotation mark to be used (' or ") * @return the Appendable, in fluent style. */ - private static Appendable printList( + public static Appendable printList( Appendable buffer, Iterable<?> list, String before, |