aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-04-23 12:04:09 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-23 12:05:19 -0700
commit981f65bf0a53239c8d5d55a1469c17721a12b2f4 (patch)
tree097d8c6faea51729bac0e9aee95b2d38eacbcd07 /src/main/java/com/google/devtools/build/lib/analysis
parenta4852b5fbf09c40bfebfec6ed231ebeb11950194 (diff)
Start refactoring elements of the Skylark Build API into their own package.
RELNOTES: None. PiperOrigin-RevId: 193962460
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/BazelBuildApiGlobals.java (renamed from src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkBuildApiGlobals.java)35
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkLateBoundDefault.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkModules.java2
3 files changed, 8 insertions, 33 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkBuildApiGlobals.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/BazelBuildApiGlobals.java
index a8851c92c4..efd87e7c10 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkBuildApiGlobals.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/BazelBuildApiGlobals.java
@@ -14,44 +14,19 @@
package com.google.devtools.build.lib.analysis.skylark;
-
import com.google.devtools.build.lib.events.Location;
-import com.google.devtools.build.lib.skylarkinterface.Param;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkGlobalLibrary;
+import com.google.devtools.build.lib.skylarkbuildapi.SkylarkBuildApiGlobals;
import com.google.devtools.build.lib.syntax.Environment;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.SkylarkUtils;
/**
- * A collection of global skylark build API functions that belong in the global namespace.
+ * Bazel implementation of {@link SkylarkBuildApiGlobals}: a collection of global skylark build
+ * API functions that belong in the global namespace.
*/
-@SkylarkGlobalLibrary
-public class SkylarkBuildApiGlobals {
+public class BazelBuildApiGlobals implements SkylarkBuildApiGlobals {
- @SkylarkCallable(
- name = "configuration_field",
- // TODO(cparsons): Provide a link to documentation for available SkylarkConfigurationFields.
- doc = "References a late-bound default value for an attribute of type "
- + "<a href=\"attr.html#label\">label</a>. A value is 'late-bound' if it requires "
- + "the configuration to be built before determining the value. Any attribute using this "
- + "as a value must <a href=\"../rules.html#private-attributes\">be private</a>.",
- parameters = {
- @Param(
- name = "fragment",
- type = String.class,
- named = true,
- doc = "The name of a configuration fragment which contains the late-bound value."
- ),
- @Param(
- name = "name",
- type = String.class,
- named = true,
- doc = "The name of the value to obtain from the configuration fragment."),
- },
- useLocation = true,
- useEnvironment = true
- )
+ @Override
public SkylarkLateBoundDefault<?> configurationField(
String fragment, String name, Location loc, Environment env)
throws EvalException {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkLateBoundDefault.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkLateBoundDefault.java
index 93fe96e32e..bf91cafbab 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkLateBoundDefault.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkLateBoundDefault.java
@@ -27,9 +27,9 @@ import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skylarkbuildapi.LateBoundDefaultApi;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;
@@ -50,7 +50,7 @@ import javax.annotation.concurrent.Immutable;
@Immutable
@AutoCodec
public class SkylarkLateBoundDefault<FragmentT> extends AbstractLabelLateBoundDefault<FragmentT>
- implements SkylarkValue {
+ implements LateBoundDefaultApi {
private final Method method;
private final String fragmentName;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkModules.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkModules.java
index 17129ee6f4..a85893197e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkModules.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkModules.java
@@ -38,8 +38,8 @@ public final class SkylarkModules {
*/
public static final ImmutableList<Class<?>> MODULES =
ImmutableList.of(
+ BazelBuildApiGlobals.class,
SkylarkAttr.class,
- SkylarkBuildApiGlobals.class,
SkylarkCommandLine.class,
SkylarkNativeModule.class,
SkylarkRuleClassFunctions.class);