bazel syntax: move SkylarkCallbackFunction to packages.StarlarkCallbackHelper
By moving this type, we can replace StarlarkContext with BazelStarlarkContext,
which removes one more reference to StarlarkContext from lib.syntax.
The new class name reflects that its instances are not functions.
("Helper" is a technical term meaning "bad abstraction".)
This CL also tightens the parameter types of
rule.implementation, aspect.implementation, and rule.outputs
so that they accept only Starlark ('def') functions, not
callable built-ins such as rule classes, providers, etc.
Strictly speaking this is an incompatible change, but it is
almost inconceivable that anyone outside Blaze itself is
exploiting it.
PiperOrigin-RevId: 267241938
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index 0f7cfe3..a6fad4e 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -43,7 +43,6 @@
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.EvalUtils;
import com.google.devtools.build.lib.syntax.Runtime;
-import com.google.devtools.build.lib.syntax.SkylarkCallbackFunction;
import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.syntax.Type.ConversionException;
import com.google.devtools.build.lib.syntax.Type.LabelClass;
@@ -1384,7 +1383,7 @@
*/
public static final class SkylarkComputedDefaultTemplate {
private final Type<?> type;
- private final SkylarkCallbackFunction callback;
+ private final StarlarkCallbackHelper callback;
private final Location location;
private final ImmutableList<String> dependencies;
@@ -1401,7 +1400,7 @@
public SkylarkComputedDefaultTemplate(
Type<?> type,
ImmutableList<String> dependencies,
- SkylarkCallbackFunction callback,
+ StarlarkCallbackHelper callback,
Location location) {
this.type = Preconditions.checkNotNull(type);
// Order is important for #createDependencyAssignmentTuple.