Fix NPE in Printer

RELNOTES: None
PiperOrigin-RevId: 165489091
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 b91237a..1c902a6 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.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 @@
    * @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 @@
     @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 @@
      */
     @Override
     public BasePrinter format(String pattern, Object... arguments) {
-      return this.formatWithList(pattern, ImmutableList.copyOf(arguments));
+      return this.formatWithList(pattern, Arrays.asList(arguments));
     }
 
     /**