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;
}