Improved error messages for builtin Skylark functions that are invoked with invalid arguments.

--
MOS_MIGRATED_REVID=100386706
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java b/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java
index 52b7e1f..e16ffa2 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java
@@ -257,6 +257,15 @@
    * Returns a pretty name for the datatype equivalent of class 'c' in the Build language.
    */
   public static String getDataTypeNameFromClass(Class<?> c) {
+    return getDataTypeNameFromClass(c, true);
+  }
+
+  /**
+   * Returns a pretty name for the datatype equivalent of class 'c' in the Build language.
+   * @param highlightNameSpaces Determines whether the result should also contain a special comment
+   * when the given class identifies a Skylark name space.
+   */
+  public static String getDataTypeNameFromClass(Class<?> c, boolean highlightNameSpaces) {
     if (c.equals(Object.class)) {
       return "unknown";
     } else if (c.equals(String.class)) {
@@ -292,7 +301,7 @@
     } else if (c.isAnnotationPresent(SkylarkModule.class)) {
       SkylarkModule module = c.getAnnotation(SkylarkModule.class);
       return c.getAnnotation(SkylarkModule.class).name()
-          + (module.namespace() ? " (a language module)" : "");
+          + ((module.namespace() && highlightNameSpaces) ? " (a language module)" : "");
     } else {
       if (c.getSimpleName().isEmpty()) {
         return c.getName();