diff options
author | Laurent Le Brun <laurentlb@google.com> | 2015-06-29 19:56:32 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2015-06-30 08:55:14 +0000 |
commit | 357015e214b55ad9950021984a63cd9588a1192b (patch) | |
tree | f3d27a6545f4959397d605ef1a36ea7b2611f4d5 /src/main/java/com/google/devtools/build/lib | |
parent | 5c940233d7f6b2019ca0539cc833b46ef0478c6f (diff) |
Rollback of commit 13ef26d0817a429bf214d3dc4c5551e616e403fe.
*** Reason for rollback ***
Breaks 'blaze query'
*** Original change description ***
Skylark: write labels readably
Write a label as Label("//x:x") instead of merely "//x:x", so it can be read
and evaluated back, as per the Python convention. However, the OutputFormatter
for BUILD files still needs to output "//x:x".
--
MOS_MIGRATED_REVID=97156166
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java | 43 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/Printer.java | 2 |
2 files changed, 1 insertions, 44 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java b/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java index baade5a1ce..26432465d4 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java @@ -25,7 +25,6 @@ import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.PackageSerializer; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; -import com.google.devtools.build.lib.syntax.Environment; import com.google.devtools.build.lib.syntax.EvalUtils; import com.google.devtools.build.lib.syntax.Label; import com.google.devtools.build.lib.syntax.Printer; @@ -290,46 +289,6 @@ public abstract class OutputFormatter implements Serializable { return "build"; } - // We only need to be able to output the types allowed in an attribute: - // int, string, label, string_list, label_list, bool, output, output_list, string_dict, license, - // where most of those things are actually printed as strings and list of strings. - private static void outputValue(PrintStream out, Object value) { - if (value instanceof Integer || value instanceof Boolean || value == Environment.NONE) { - Printer.write(out, value); - } else if (value instanceof String) { - Printer.writeString(out, (String) value, '"'); - } else if (value instanceof Label) { - outputValue(out, value.toString()); - } else if (value instanceof List<?>) { - out.print("["); - outputList(out, (List<?>) value); - out.print("]"); - } else if (value instanceof Map<?, ?>) { - Map<?, ?> dict = (Map<?, ?>) value; - out.print("{"); - outputList(out, dict.entrySet()); - out.print("}"); - } else if (value instanceof Map.Entry<?, ?>) { - Map.Entry<?, ?> entry = (Map.Entry<?, ?>) value; - outputValue(out, entry.getKey()); - out.print(": "); - outputValue(out, entry.getValue()); - } else { - throw new RuntimeException("invalid value " + Printer.repr(value)); - } - } - - private static void outputList(PrintStream out, Iterable<?> list) { - boolean first = true; - for (Object v : list) { - if (!first) { - out.print(", "); - first = false; - } - outputValue(out, v); - } - } - private void outputRule(Rule rule, PrintStream out) { out.printf("# %s%n", rule.getLocation()); out.printf("%s(%n", rule.getRuleClass()); @@ -351,7 +310,7 @@ public abstract class OutputFormatter implements Serializable { // Display it as a list (and not as a tuple). Attributes can never be tuples. value = new ArrayList<>((List<?>) value); } - outputValue(out, value); + Printer.write(out, value); out.println(","); } out.printf(")\n%n"); 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 f3e95259f4..56f129e6b8 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 @@ -135,9 +135,7 @@ public final class Printer { append(buffer, "<function " + func.getName() + ">"); } else if (o instanceof Label) { - append(buffer, "Label("); write(buffer, o.toString()); - append(buffer, ')'); } else if (o instanceof FilesetEntry) { FilesetEntry entry = (FilesetEntry) o; |