Remove old Skylark Function hierarchy

Last step in refactoring of Skylark builtin functions.

--
MOS_MIGRATED_REVID=91796746
diff --git a/src/main/java/com/google/devtools/build/lib/packages/MethodLibrary.java b/src/main/java/com/google/devtools/build/lib/packages/MethodLibrary.java
index 9d7faa8..55d5bb5 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/MethodLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/MethodLibrary.java
@@ -14,6 +14,7 @@
 
 package com.google.devtools.build.lib.packages;
 
+import com.google.common.base.Function;
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
@@ -22,6 +23,7 @@
 import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.events.Location;
 import com.google.devtools.build.lib.packages.Type.ConversionException;
+import com.google.devtools.build.lib.syntax.BaseFunction;
 import com.google.devtools.build.lib.syntax.BuiltinFunction;
 import com.google.devtools.build.lib.syntax.ClassObject;
 import com.google.devtools.build.lib.syntax.ClassObject.SkylarkClassObject;
@@ -30,7 +32,6 @@
 import com.google.devtools.build.lib.syntax.EvalException;
 import com.google.devtools.build.lib.syntax.EvalUtils;
 import com.google.devtools.build.lib.syntax.FuncallExpression;
-import com.google.devtools.build.lib.syntax.Function;
 import com.google.devtools.build.lib.syntax.SelectorList;
 import com.google.devtools.build.lib.syntax.SelectorValue;
 import com.google.devtools.build.lib.syntax.SkylarkEnvironment;
@@ -1024,24 +1025,24 @@
       + "</pre>")
   public static final class DictModule {}
 
-  public static final List<Function> stringFunctions = ImmutableList.<Function>of(
+  public static final List<BaseFunction> stringFunctions = ImmutableList.<BaseFunction>of(
       count, endswith, find, index, join, lower, replace, rfind,
       rindex, slice, split, startswith, strip, upper);
 
-  public static final List<Function> listPureFunctions = ImmutableList.<Function>of(
+  public static final List<BaseFunction> listPureFunctions = ImmutableList.<BaseFunction>of(
       slice);
 
-  public static final List<Function> listFunctions = ImmutableList.<Function>of(
+  public static final List<BaseFunction> listFunctions = ImmutableList.<BaseFunction>of(
       append, extend);
 
-  public static final List<Function> dictFunctions = ImmutableList.<Function>of(
+  public static final List<BaseFunction> dictFunctions = ImmutableList.<BaseFunction>of(
       items, get, keys, values);
 
-  private static final List<Function> pureGlobalFunctions = ImmutableList.<Function>of(
+  private static final List<BaseFunction> pureGlobalFunctions = ImmutableList.<BaseFunction>of(
       bool, int_, len, minus, select, sorted, str);
 
-  private static final List<Function> skylarkGlobalFunctions = ImmutableList
-      .<Function>builder()
+  private static final List<BaseFunction> skylarkGlobalFunctions =
+      ImmutableList.<BaseFunction>builder()
       .addAll(pureGlobalFunctions)
       .add(list, struct, hasattr, getattr, set, dir, enumerate, range, type, fail, print, zip)
       .build();
@@ -1071,14 +1072,14 @@
   }
 
   private static void setupMethodEnvironment(
-      Environment env, Class<?> nameSpace, Iterable<Function> functions) {
-    for (Function function : functions) {
+      Environment env, Class<?> nameSpace, Iterable<BaseFunction> functions) {
+    for (BaseFunction function : functions) {
       env.registerFunction(nameSpace, function.getName(), function);
     }
   }
 
-  private static void setupMethodEnvironment(Environment env, Iterable<Function> functions) {
-    for (Function function : functions) {
+  private static void setupMethodEnvironment(Environment env, Iterable<BaseFunction> functions) {
+    for (BaseFunction function : functions) {
       env.update(function.getName(), function);
     }
   }
@@ -1087,7 +1088,7 @@
    * Collect global functions for the validation environment.
    */
   public static void setupValidationEnvironment(Set<String> builtIn) {
-    for (Function function : skylarkGlobalFunctions) {
+    for (BaseFunction function : skylarkGlobalFunctions) {
       builtIn.add(function.getName());
     }
   }
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
index b4d4a6d..4d7b71f 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
@@ -40,7 +40,6 @@
 import com.google.devtools.build.lib.syntax.EvalUtils;
 import com.google.devtools.build.lib.syntax.Expression;
 import com.google.devtools.build.lib.syntax.FuncallExpression;
-import com.google.devtools.build.lib.syntax.Function;
 import com.google.devtools.build.lib.syntax.FunctionSignature;
 import com.google.devtools.build.lib.syntax.GlobList;
 import com.google.devtools.build.lib.syntax.Ident;
@@ -149,7 +148,7 @@
     /**
      * Returns the extra functions needed to be added to the Skylark native module.
      */
-    ImmutableList<Function> nativeModuleFunctions();
+    ImmutableList<BaseFunction> nativeModuleFunctions();
 
     Iterable<PackageArgument<?>> getPackageArguments();
   }
@@ -854,7 +853,7 @@
    * Returns a function-value implementing "package" in the specified package
    * context.
    */
-  private static Function newPackageFunction(
+  private static BaseFunction newPackageFunction(
       final ImmutableMap<String, PackageArgument<?>> packageArguments) {
     // Flatten the map of argument name of PackageArgument specifier in two co-indexed arrays:
     // one for the argument names, to create a FunctionSignature when we create the function,
@@ -1151,7 +1150,7 @@
    * PackageFactory.)
    *
    * <p>PLEASE NOTE: references to PackageContext objects are held by many
-   * Function closures, but should become unreachable once the Environment is
+   * BaseFunction closures, but should become unreachable once the Environment is
    * discarded at the end of evaluation.  Please be aware of your memory
    * footprint when making changes here!
    */
@@ -1188,8 +1187,8 @@
    * Returns the list of native rule functions created using the {@link RuleClassProvider}
    * of this {@link PackageFactory}.
    */
-  public ImmutableList<Function> collectNativeRuleFunctions() {
-    ImmutableList.Builder<Function> builder = ImmutableList.builder();
+  public ImmutableList<BaseFunction> collectNativeRuleFunctions() {
+    ImmutableList.Builder<BaseFunction> builder = ImmutableList.builder();
     for (String ruleClass : ruleFactory.getRuleClassNames()) {
       builder.add(newRuleFunction(ruleFactory, ruleClass));
     }
@@ -1215,7 +1214,7 @@
     pkgEnv.update("PACKAGE_NAME", packageName);
 
     for (String ruleClass : ruleFactory.getRuleClassNames()) {
-      Function ruleFunction = newRuleFunction(ruleFactory, ruleClass);
+      BaseFunction ruleFunction = newRuleFunction(ruleFactory, ruleClass);
       pkgEnv.update(ruleClass, ruleFunction);
     }
 
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index c604fff..93a0165 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -29,9 +29,9 @@
 import com.google.devtools.build.lib.events.EventHandler;
 import com.google.devtools.build.lib.events.Location;
 import com.google.devtools.build.lib.syntax.Argument;
+import com.google.devtools.build.lib.syntax.BaseFunction;
 import com.google.devtools.build.lib.syntax.Environment;
 import com.google.devtools.build.lib.syntax.FuncallExpression;
-import com.google.devtools.build.lib.syntax.Function;
 import com.google.devtools.build.lib.syntax.GlobList;
 import com.google.devtools.build.lib.syntax.Label;
 import com.google.devtools.build.lib.syntax.Label.SyntaxException;
@@ -427,7 +427,7 @@
         PredicatesWithMessage.<Rule>alwaysTrue();
     private Predicate<String> preferredDependencyPredicate = Predicates.alwaysFalse();
     private List<Class<?>> advertisedProviders = new ArrayList<>();
-    private Function configuredTargetFunction = null;
+    private BaseFunction configuredTargetFunction = null;
     private SkylarkEnvironment ruleDefinitionEnvironment = null;
     private Set<Class<?>> configurationFragments = new LinkedHashSet<>();
     private boolean failIfMissingConfigurationFragment;
@@ -681,7 +681,7 @@
     /**
      * Sets the rule implementation function. Meant for Skylark usage.
      */
-    public Builder setConfiguredTargetFunction(Function func) {
+    public Builder setConfiguredTargetFunction(BaseFunction func) {
       this.configuredTargetFunction = func;
       return this;
     }
@@ -834,7 +834,7 @@
   /**
    * The Skylark rule implementation of this RuleClass. Null for non Skylark executable RuleClasses.
    */
-  @Nullable private final Function configuredTargetFunction;
+  @Nullable private final BaseFunction configuredTargetFunction;
 
   /**
    * The Skylark rule definition environment of this RuleClass.
@@ -895,7 +895,7 @@
       ConfiguredTargetFactory<?, ?> configuredTargetFactory,
       PredicateWithMessage<Rule> validityPredicate, Predicate<String> preferredDependencyPredicate,
       ImmutableSet<Class<?>> advertisedProviders,
-      @Nullable Function configuredTargetFunction,
+      @Nullable BaseFunction configuredTargetFunction,
       @Nullable SkylarkEnvironment ruleDefinitionEnvironment,
       Set<Class<?>> allowedConfigurationFragments, boolean failIfMissingConfigurationFragment,
       boolean supportsConstraintChecking,
@@ -1503,7 +1503,7 @@
   /**
    * Returns this RuleClass's custom Skylark rule implementation.
    */
-  @Nullable public Function getConfiguredTargetFunction() {
+  @Nullable public BaseFunction getConfiguredTargetFunction() {
     return configuredTargetFunction;
   }