aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar Francois-Rene Rideau <tunes@google.com>2015-04-22 16:52:13 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2015-04-23 09:11:04 +0000
commit95b0d0cc209fbff23938910c12f84bdbef73eb68 (patch)
tree6697e7e1bf0fdcd25bd931b69804aa315e551b2d /src/main/java/com/google/devtools/build/lib/rules
parentc857853cb0c0e4f13fd7890dec0d4d734c947932 (diff)
Remove old Skylark Function hierarchy
Last step in refactoring of Skylark builtin functions. -- MOS_MIGRATED_REVID=91796746
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java16
2 files changed, 13 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
index 14bdcd7bbc..10a567467a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
@@ -63,7 +63,6 @@ import com.google.devtools.build.lib.syntax.Environment.NoSuchVariableException;
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.FunctionSignature;
import com.google.devtools.build.lib.syntax.Label;
import com.google.devtools.build.lib.syntax.SkylarkCallbackFunction;
@@ -180,9 +179,9 @@ public class SkylarkRuleClassFunctions {
"Creates a new rule. Store it in a global value, so that it can be loaded and called "
+ "from BUILD files.",
onlyLoadingPhase = true,
- returnType = Function.class,
+ returnType = BaseFunction.class,
mandatoryPositionals = {
- @Param(name = "implementation", type = Function.class,
+ @Param(name = "implementation", type = BaseFunction.class,
doc = "the function implementing this rule, has to have exactly one parameter: "
+ "<code>ctx</code>. The function is called during analysis phase for each "
+ "instance of the rule. It can access the attributes provided by the user. "
@@ -215,7 +214,7 @@ public class SkylarkRuleClassFunctions {
private static final BuiltinFunction rule = new BuiltinFunction("rule") {
@SuppressWarnings({"rawtypes", "unchecked"}) // castMap produces
// an Attribute.Builder instead of a Attribute.Builder<?> but it's OK.
- public Function invoke(Function implementation, Boolean test,
+ public BaseFunction invoke(BaseFunction implementation, Boolean test,
Object attrs, Object implicitOutputs, Boolean executable, Boolean outputToGenfiles,
FuncallExpression ast, Environment funcallEnv)
throws EvalException, ConversionException {
@@ -250,8 +249,8 @@ public class SkylarkRuleClassFunctions {
}
if (implicitOutputs != Environment.NONE) {
- if (implicitOutputs instanceof Function) {
- Function func = (Function) implicitOutputs;
+ if (implicitOutputs instanceof BaseFunction) {
+ BaseFunction func = (BaseFunction) implicitOutputs;
final SkylarkCallbackFunction callback =
new SkylarkCallbackFunction(func, ast, (SkylarkEnvironment) funcallEnv);
builder.setImplicitOutputsFunction(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
index f848f91c2e..08d313a8c4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
@@ -13,6 +13,7 @@
// limitations under the License.
package com.google.devtools.build.lib.rules;
+import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -29,12 +30,12 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.TargetUtils;
import com.google.devtools.build.lib.packages.Type;
+import com.google.devtools.build.lib.syntax.BaseFunction;
import com.google.devtools.build.lib.syntax.ClassObject;
import com.google.devtools.build.lib.syntax.ClassObject.SkylarkClassObject;
import com.google.devtools.build.lib.syntax.Environment;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.EvalUtils;
-import com.google.devtools.build.lib.syntax.Function;
import com.google.devtools.build.lib.syntax.SkylarkEnvironment;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import com.google.devtools.build.lib.syntax.SkylarkType;
@@ -49,7 +50,7 @@ public final class SkylarkRuleConfiguredTargetBuilder {
* Create a Rule Configured Target from the ruleContext and the ruleImplementation.
*/
public static ConfiguredTarget buildRule(RuleContext ruleContext,
- Function ruleImplementation) {
+ BaseFunction ruleImplementation) {
String expectError = ruleContext.attributes().get("expect_failure", Type.STRING);
try {
SkylarkRuleContext skylarkRuleContext = new SkylarkRuleContext(ruleContext);
@@ -96,12 +97,11 @@ public final class SkylarkRuleConfiguredTargetBuilder {
if (!orphanArtifacts.isEmpty()) {
throw new EvalException(null, "The following files have no generating action:\n"
+ Joiner.on("\n").join(Iterables.transform(orphanArtifacts,
- new com.google.common.base.Function<Artifact, String>() {
- @Override
- public String apply(Artifact artifact) {
- return artifact.getRootRelativePathString();
- }
- })));
+ new Function<Artifact, String>() {
+ @Override
+ public String apply(Artifact artifact) {
+ return artifact.getRootRelativePathString();
+ }})));
}
}