aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Printer.java10
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java2
2 files changed, 8 insertions, 4 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 b91237ad72..1c902a6c2d 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
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.syntax;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.events.Location;
@@ -23,6 +22,7 @@ import com.google.devtools.build.lib.syntax.SkylarkList.Tuple;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.io.IOException;
+import java.util.Arrays;
import java.util.Formattable;
import java.util.Formatter;
import java.util.List;
@@ -232,7 +232,7 @@ public class Printer {
* @return the formatted string.
*/
public static Formattable formattable(final String pattern, Object... arguments) {
- final ImmutableList<Object> args = ImmutableList.copyOf(arguments);
+ final List<Object> args = Arrays.asList(arguments);
return new Formattable() {
@Override
public String toString() {
@@ -341,7 +341,9 @@ public class Printer {
@Override
public BasePrinter repr(Object o) {
if (o == null) {
- throw new NullPointerException(); // Java null is not a valid Skylark value.
+ // Java null is not a valid Skylark value, but sometimes printers are used on non-Skylark
+ // values such as Locations or ASTs.
+ this.append("null");
} else if (o instanceof SkylarkValue) {
((SkylarkValue) o).repr(this);
@@ -512,7 +514,7 @@ public class Printer {
*/
@Override
public BasePrinter format(String pattern, Object... arguments) {
- return this.formatWithList(pattern, ImmutableList.copyOf(arguments));
+ return this.formatWithList(pattern, Arrays.asList(arguments));
}
/**
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java b/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java
index 7c0bc11c79..84386b6a5f 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java
@@ -103,6 +103,8 @@ public class PrinterTest {
assertThat(Printer.formatWithList("%s %d", Tuple.of("foo", 3))).isEqualTo("foo 3");
assertThat(Printer.format("%s %d", "foo", 3)).isEqualTo("foo 3");
+ assertThat(Printer.format("%s %s %s", 1, null, 3)).isEqualTo("1 null 3");
+
// Note: formatToString doesn't perform scalar x -> (x) conversion;
// The %-operator is responsible for that.
assertThat(Printer.formatWithList("", Tuple.of())).isEmpty();