aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Laurent Le Brun <laurentlb@google.com>2015-06-29 19:56:32 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-06-30 08:55:14 +0000
commit357015e214b55ad9950021984a63cd9588a1192b (patch)
treef3d27a6545f4959397d605ef1a36ea7b2611f4d5 /src/main/java
parent5c940233d7f6b2019ca0539cc833b46ef0478c6f (diff)
*** 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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java43
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Printer.java2
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;