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) {