diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/TriState.java | 17 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java | 3 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/TriState.java b/src/main/java/com/google/devtools/build/lib/packages/TriState.java index ce9188c540..d321e9d020 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/TriState.java +++ b/src/main/java/com/google/devtools/build/lib/packages/TriState.java @@ -18,5 +18,20 @@ package com.google.devtools.build.lib.packages; * Enum used to represent tri-state parameters in rule attributes (yes/no/auto). */ public enum TriState { - YES, NO, AUTO + YES, + NO, + AUTO; + + public int toInt() { + switch (this) { + case YES: + return 1; + case NO: + return 0; + case AUTO: + return -1; + default: + throw new IllegalStateException(); + } + } } 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 d20880c5ef..18890c3eb6 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 @@ -32,6 +32,7 @@ import com.google.devtools.build.lib.packages.License; import com.google.devtools.build.lib.packages.RawAttributeMapper; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; +import com.google.devtools.build.lib.packages.TriState; import com.google.devtools.build.lib.query2.engine.OutputFormatterCallback; import com.google.devtools.build.lib.query2.engine.QueryEnvironment; import com.google.devtools.build.lib.query2.output.QueryOptions.OrderOutput; @@ -449,6 +450,8 @@ public abstract class OutputFormatter implements Serializable { } else if (value instanceof List<?> && EvalUtils.isImmutable(value)) { // Display it as a list (and not as a tuple). Attributes can never be tuples. value = new ArrayList<>((List<?>) value); + } else if (value instanceof TriState) { + value = ((TriState) value).toInt(); } // It is *much* faster to write to a StringBuilder compared to the PrintStream object. StringBuilder builder = new StringBuilder(); |