Allow fail() function to accept any argument

e.g.  fail(3)

This is mostly useful for debugging (typical error messages will continue
to use strings).

--
MOS_MIGRATED_REVID=123008379
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java b/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
index 9f1285c..307164d 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
@@ -1784,4 +1784,11 @@
         .testStatement("' \\t\\n\\ra b c \\t\\n\\r'.strip()", "a b c")
         .testStatement("' a b c '.strip('')", " a b c ");
   }
+
+  @Test
+  public void testFail() throws Exception {
+    new SkylarkTest()
+        .testIfErrorContains("abc", "fail('abc')")
+        .testIfErrorContains("18", "fail(18)");
+  }
 }