diff options
author | 2018-03-22 09:07:25 -0700 | |
---|---|---|
committer | 2018-03-22 09:09:18 -0700 | |
commit | 2c81467ba10ffa05fa5e2f06a47cc4d5241f195b (patch) | |
tree | 4d78aae305a1514b6ff7487ad7f829fbb53dc95d /src/main/java | |
parent | 3e9c776167b06fb7ff1e6b92de202548cb35c00a (diff) |
Convert SkylarkActionFactory methods to use @SkylarkCallable instead of @SkylarkSignature
RELNOTES: None.
PiperOrigin-RevId: 190073508
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java | 93 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java | 4 |
2 files changed, 27 insertions, 70 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java index 71a597f3cc..104a98d190 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java @@ -46,10 +46,8 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter; -import com.google.devtools.build.lib.skylarkinterface.SkylarkSignature; import com.google.devtools.build.lib.skylarkinterface.SkylarkValue; import com.google.devtools.build.lib.syntax.BaseFunction; -import com.google.devtools.build.lib.syntax.BuiltinFunction; import com.google.devtools.build.lib.syntax.Environment; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.EvalUtils; @@ -61,7 +59,6 @@ import com.google.devtools.build.lib.syntax.SkylarkList; import com.google.devtools.build.lib.syntax.SkylarkMutable; import com.google.devtools.build.lib.syntax.SkylarkNestedSet; import com.google.devtools.build.lib.syntax.SkylarkSemantics; -import com.google.devtools.build.lib.syntax.SkylarkSignatureProcessor; import com.google.devtools.build.lib.vfs.PathFragment; import java.nio.charset.StandardCharsets; import java.util.ArrayList; @@ -889,13 +886,10 @@ public class SkylarkActionFactory implements SkylarkValue { private String flagFormatString; private boolean useAlways; - @SkylarkSignature( + @SkylarkCallable( name = "add", - objectType = Args.class, - returnType = NoneType.class, doc = "Adds an argument to be dynamically expanded at evaluation time.", parameters = { - @Param(name = "self", type = Args.class, doc = "This args object."), @Param( name = "value", type = Object.class, @@ -955,29 +949,24 @@ public class SkylarkActionFactory implements SkylarkValue { }, useLocation = true ) - public static final BuiltinFunction add = - new BuiltinFunction("add") { - @SuppressWarnings("unused") - public NoneType invoke( - Args self, - Object value, - Object format, - Object beforeEach, - Object joinWith, - Object mapFn, - Location loc) - throws EvalException { - if (self.isImmutable()) { - throw new EvalException(null, "cannot modify frozen value"); - } - if (value instanceof SkylarkNestedSet || value instanceof SkylarkList) { - self.addVectorArg(value, format, beforeEach, joinWith, mapFn, loc); - } else { - self.addScalarArg(value, format, beforeEach, joinWith, mapFn, loc); - } - return Runtime.NONE; - } - }; + public NoneType addArgument( + Object value, + Object format, + Object beforeEach, + Object joinWith, + Object mapFn, + Location loc) + throws EvalException { + if (this.isImmutable()) { + throw new EvalException(null, "cannot modify frozen value"); + } + if (value instanceof SkylarkNestedSet || value instanceof SkylarkList) { + addVectorArg(value, format, beforeEach, joinWith, mapFn, loc); + } else { + addScalarArg(value, format, beforeEach, joinWith, mapFn, loc); + } + return Runtime.NONE; + } private void addVectorArg( Object value, Object format, Object beforeEach, Object joinWith, Object mapFn, Location loc) @@ -1135,38 +1124,18 @@ public class SkylarkActionFactory implements SkylarkValue { public void repr(SkylarkPrinter printer) { printer.append("context.args() object"); } - - static { - SkylarkSignatureProcessor.configureSkylarkFunctions(Args.class); - } - - /** No-op method that can be called to ensure the above static initializer runs. */ - public static void forceStaticInitialization() { - } } - @SkylarkSignature( + @SkylarkCallable( name = "args", doc = "Returns an Args object that can be used to build memory-efficient command lines.", - objectType = SkylarkActionFactory.class, - returnType = Args.class, - parameters = { - @Param( - name = "self", - type = SkylarkActionFactory.class, - doc = "This 'actions' object." - ) - }, useEnvironment = true ) - public static final BuiltinFunction args = - new BuiltinFunction("args") { - public Args invoke(SkylarkActionFactory self, Environment env) { - return new Args(env.mutability(), - env.getSemantics(), - self.ruleContext.getAnalysisEnvironment().getEventHandler()); - } - }; + public Args args(Environment env) { + return new Args(env.mutability(), + env.getSemantics(), + ruleContext.getAnalysisEnvironment().getEventHandler()); + } @Override public boolean isImmutable() { @@ -1182,16 +1151,4 @@ public class SkylarkActionFactory implements SkylarkValue { void nullify() { ruleContext = null; } - - static { - SkylarkSignatureProcessor.configureSkylarkFunctions(SkylarkActionFactory.class); - } - - /** - * No-op method that can be called to ensure the above static initializer runs, as well as the - * initializer for nested classes. - */ - public static void forceStaticInitialization() { - Args.forceStaticInitialization(); - } } diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java index dab37d82cb..6e04c6170d 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java @@ -30,7 +30,6 @@ import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.ServerDirectories; import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory; -import com.google.devtools.build.lib.analysis.skylark.SkylarkActionFactory; import com.google.devtools.build.lib.analysis.test.CoverageReportActionFactory; import com.google.devtools.build.lib.buildeventstream.PathConverter; import com.google.devtools.build.lib.buildtool.BuildRequestOptions; @@ -1110,7 +1109,8 @@ public final class BlazeRuntime { * frozen at all for them. They just pay the cost of extra synchronization on every access. */ private static void initSkylarkBuiltinsRegistry() { - SkylarkActionFactory.forceStaticInitialization(); + // Currently no classes need to be initialized here. The hook's still here because it's + // possible it may be needed again in the future. com.google.devtools.build.lib.syntax.Runtime.getBuiltinRegistry().freeze(); } |