Inline the size() function.

It was used in only one place. Inlining it makes the code simpler (no need to check twic for NestedSet, no need to return a dummy integer in case of error).

Tests were removed. We already have tests for the len() builtin.

RELNOTES: None.
PiperOrigin-RevId: 234469534
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 39256da..5ca655e 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
@@ -426,26 +426,6 @@
     return builder.build();
   }
 
-  /**
-   * @return the size of the Skylark object or -1 in case the object doesn't have a size.
-   */
-  public static int size(Object arg) {
-    if (arg instanceof String) {
-      return ((String) arg).length();
-    } else if (arg instanceof Map) {
-      return ((Map<?, ?>) arg).size();
-    } else if (arg instanceof SkylarkList) {
-      return ((SkylarkList<?>) arg).size();
-    } else if (arg instanceof SkylarkNestedSet) {
-      // TODO(bazel-team): Add a deprecation warning: don't implicitly flatten depsets.
-      return ((SkylarkNestedSet) arg).toCollection().size();
-    } else if (arg instanceof Iterable) {
-      // Iterables.size() checks if arg is a Collection so it's efficient in that sense.
-      return Iterables.size((Iterable<?>) arg);
-    }
-    return -1;
-  }
-
   // The following functions for indexing and slicing match the behavior of Python.
 
   /**
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java b/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
index 8b6e12c..75058f1 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
@@ -19,6 +19,7 @@
 import com.google.common.base.Ascii;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Ordering;
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -37,6 +38,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Set;
 import java.util.TreeSet;
@@ -281,20 +283,28 @@
   private static final BuiltinFunction len =
       new BuiltinFunction("len") {
         public Integer invoke(Object x, Location loc, Environment env) throws EvalException {
-          if (env.getSemantics().incompatibleDepsetIsNotIterable()
-              && x instanceof SkylarkNestedSet) {
-            throw new EvalException(
-                loc,
-                EvalUtils.getDataTypeName(x)
-                    + " is not iterable. You may use `len(<depset>.to_list())` instead. Use "
-                    + "--incompatible_depset_is_not_iterable=false to temporarily disable this "
-                    + "check.");
-          }
-          int l = EvalUtils.size(x);
-          if (l == -1) {
+          if (x instanceof String) {
+            return ((String) x).length();
+          } else if (x instanceof Map) {
+            return ((Map<?, ?>) x).size();
+          } else if (x instanceof SkylarkList) {
+            return ((SkylarkList<?>) x).size();
+          } else if (x instanceof SkylarkNestedSet) {
+            if (env.getSemantics().incompatibleDepsetIsNotIterable()) {
+              throw new EvalException(
+                  loc,
+                  EvalUtils.getDataTypeName(x)
+                      + " is not iterable. You may use `len(<depset>.to_list())` instead. Use "
+                      + "--incompatible_depset_is_not_iterable=false to temporarily disable this "
+                      + "check.");
+            }
+            return ((SkylarkNestedSet) x).toCollection().size();
+          } else if (x instanceof Iterable) {
+            // Iterables.size() checks if x is a Collection so it's efficient in that sense.
+            return Iterables.size((Iterable<?>) x);
+          } else {
             throw new EvalException(loc, EvalUtils.getDataTypeName(x) + " is not iterable");
           }
-          return l;
         }
       };
 
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java b/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java
index 404a960..eec32d1 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java
@@ -18,7 +18,6 @@
 import static com.google.devtools.build.lib.testutil.MoreAsserts.assertThrows;
 import static org.junit.Assert.fail;
 
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
 import com.google.devtools.build.lib.packages.StructProvider;
@@ -58,18 +57,6 @@
     assertThat(EvalUtils.toIterable("abc", null, null)).hasSize(3);
   }
 
-  @Test
-  public void testSize() throws Exception {
-    assertThat(EvalUtils.size("abc")).isEqualTo(3);
-    assertThat(EvalUtils.size(ImmutableMap.of(1, 2, 3, 4))).isEqualTo(2);
-    assertThat(EvalUtils.size(SkylarkList.Tuple.of(1, 2, 3))).isEqualTo(3);
-    SkylarkNestedSet set = SkylarkNestedSet.of(
-        Object.class,
-        NestedSetBuilder.stableOrder().add(1).add(2).add(3).build());
-    assertThat(EvalUtils.size(set)).isEqualTo(3);
-    assertThat(EvalUtils.size(ImmutableList.of(1, 2, 3))).isEqualTo(3);
-  }
-
   /** MockClassA */
   @SkylarkModule(name = "MockClassA", doc = "MockClassA")
   public static class MockClassA {