Create an experimental analysis_test parameter in rule
This will control whether a given rule should be treated as an "analysis test" rule. The parameter and its functionality will only be available via --experimental_analysis_testing_improvements until it is complete.
In this change, analysis_test = True enforces the restriction that the rule implementation function for that rule may not register actions.
See https://docs.google.com/document/d/17P2sgC6VPmcA7CcqC2p4cfU2Kaj6dwKiQfIXhtXTzl4/ for
details.
Progress toward #6237
RELNOTES: None.
PiperOrigin-RevId: 217562194
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
index 1c3d82b..29a7cb2 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
@@ -101,12 +101,25 @@
}
@Override
- public BaseFunction rule(BaseFunction implementation, Boolean test, Object attrs,
- Object implicitOutputs, Boolean executable, Boolean outputToGenfiles,
- SkylarkList<?> fragments, SkylarkList<?> hostFragments, Boolean skylarkTestable,
- SkylarkList<?> toolchains, String doc, SkylarkList<?> providesArg,
- Boolean executionPlatformConstraintsAllowed, SkylarkList<?> execCompatibleWith,
- FuncallExpression ast, Environment funcallEnv) throws EvalException {
+ public BaseFunction rule(
+ BaseFunction implementation,
+ Boolean test,
+ Object attrs,
+ Object implicitOutputs,
+ Boolean executable,
+ Boolean outputToGenfiles,
+ SkylarkList<?> fragments,
+ SkylarkList<?> hostFragments,
+ Boolean skylarkTestable,
+ SkylarkList<?> toolchains,
+ String doc,
+ SkylarkList<?> providesArg,
+ Boolean executionPlatformConstraintsAllowed,
+ SkylarkList<?> execCompatibleWith,
+ Object analysisTest,
+ FuncallExpression ast,
+ Environment funcallEnv)
+ throws EvalException {
List<AttributeInfo> attrInfos;
ImmutableMap.Builder<String, FakeDescriptor> attrsMapBuilder = ImmutableMap.builder();
if (attrs != null && attrs != Runtime.NONE) {