Move analysis testing improvements out of "experimental".

* Removes --experimental_analysis_testing_improvements flag, moving functionality previously guarded under this flag to be usable without the flag.
* Renames --experimental_allow_analysis_failures to --allow_analysis_failures

This change is a "silent launch" of these features. Documentation on these features soon to follow: after release, bazel-skylib will be updated to incorporate a number of these improvements, and announcements with thorough documentation will be made then.

Progress toward #6237

RELNOTES: None.
PiperOrigin-RevId: 222106622
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index 530122c..703f96e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -791,17 +791,16 @@
     )
     public boolean isHost;
 
-    // TODO(cparsons): Make this flag non-experimental when it is fully implemented.
     @Option(
-        name = "experimental_allow_analysis_failures",
+        name = "allow_analysis_failures",
         defaultValue = "false",
         documentationCategory = OptionDocumentationCategory.TESTING,
-        effectTags = { OptionEffectTag.LOADING_AND_ANALYSIS },
-        metadataTags = { OptionMetadataTag.EXPERIMENTAL },
-        help = "If true, an analysis failure of a rule target results in the target's propagation "
-            + "of an instance of AnalysisFailureInfo containing the error description, instead of "
-            + "resulting in a build failure."
-    )
+        effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
+        metadataTags = {OptionMetadataTag.EXPERIMENTAL},
+        help =
+            "If true, an analysis failure of a rule target results in the target's propagation "
+                + "of an instance of AnalysisFailureInfo containing the error description, instead "
+                + "of resulting in a build failure.")
     public boolean allowAnalysisFailures;
 
     @Option(
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
index 89cb742..5382551 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
@@ -279,14 +279,6 @@
       throws EvalException, ConversionException {
     SkylarkUtils.checkLoadingOrWorkspacePhase(funcallEnv, "rule", ast.getLocation());
 
-    if (analysisTest != Runtime.UNBOUND
-        && !funcallEnv.getSemantics().experimentalAnalysisTestingImprovements()) {
-      throw new EvalException(
-          ast.getLocation(),
-          "analysis_test parameter is experimental and not available for "
-              + "general use. It is subject to change at any time. It may be enabled by specifying "
-              + "--experimental_analysis_testing_improvements");
-    }
     // analysis_test=true implies test=true.
     test |= Boolean.TRUE.equals(analysisTest);
 
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
index 8cf2e85..116b276 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
@@ -63,15 +63,6 @@
   // <== Add new options here in alphabetic order ==>
 
   @Option(
-      name = "experimental_analysis_testing_improvements",
-      defaultValue = "false",
-      documentationCategory = OptionDocumentationCategory.SKYLARK_SEMANTICS,
-      effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS, OptionEffectTag.LOADING_AND_ANALYSIS},
-      metadataTags = {OptionMetadataTag.EXPERIMENTAL},
-      help = "If true, enables pieces of experimental Starlark API for analysis-phase testing.")
-  public boolean experimentalAnalysisTestingImprovements;
-
-  @Option(
       name = "experimental_build_setting_api",
       defaultValue = "false",
       documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
@@ -542,7 +533,6 @@
   public SkylarkSemantics toSkylarkSemantics() {
     return SkylarkSemantics.builder()
         // <== Add new options here in alphabetic order ==>
-        .experimentalAnalysisTestingImprovements(experimentalAnalysisTestingImprovements)
         .experimentalBuildSettingApi(experimentalBuildSettingApi)
         .experimentalCcSkylarkApiEnabledPackages(experimentalCcSkylarkApiEnabledPackages)
         .experimentalEnableAndroidMigrationApis(experimentalEnableAndroidMigrationApis)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigGlobalLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigGlobalLibrary.java
index 8379f1f..eb9f131 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigGlobalLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigGlobalLibrary.java
@@ -63,14 +63,6 @@
   public ConfigurationTransitionApi analysisTestTransition(
       SkylarkDict<String, String> changedSettings, Location location, SkylarkSemantics semantics)
       throws EvalException {
-    if (!semantics.experimentalAnalysisTestingImprovements()) {
-      throw new EvalException(
-          location,
-          "analysis_test_transition() is experimental "
-              + "and disabled by default. This API is in development and subject to change at "
-              + "any time. Use --experimental_analysis_testing_improvements to use this "
-              + "experimental API.");
-    }
     Map<String, Object> changedSettingsMap =
         changedSettings.getContents(String.class, Object.class, "changed_settings dict");
     validateBuildSettingKeys(changedSettingsMap.keySet(), "output", location);
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureApi.java
index 527cf82..c924687 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureApi.java
@@ -18,7 +18,6 @@
 import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
-import com.google.devtools.build.lib.syntax.SkylarkSemantics.FlagIdentifier;
 
 /**
  * Encapsulates information about an analysis-phase error which would have occurred during a build.
@@ -37,20 +36,17 @@
 
   @SkylarkCallable(
       name = "label",
-      doc = "The label of the target that exhibited an analysis-phase error. This is the label "
-          + "of the target responsible for construction of this object.",
+      doc =
+          "The label of the target that exhibited an analysis-phase error. This is the label "
+              + "of the target responsible for construction of this object.",
       documented = false,
-      structField = true,
-      enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS
-  )
+      structField = true)
   public Label getLabel();
 
   @SkylarkCallable(
       name = "message",
       doc = "A string representation of the analysis-phase error which occurred.",
       documented = false,
-      structField = true,
-      enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS
-  )
+      structField = true)
   public String getMessage();
 }
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureInfoApi.java
index 2b1ea62..4cc8c8e 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureInfoApi.java
@@ -19,7 +19,6 @@
 import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
-import com.google.devtools.build.lib.syntax.SkylarkSemantics.FlagIdentifier;
 
 /**
  * Encapsulates information about an analysis-phase error which would have occurred during a build.
@@ -53,12 +52,11 @@
 
   @SkylarkCallable(
       name = "causes",
-      doc = "A depset of <code>AnalysisFailure</code> objects describing the failures that "
-          + "occurred in this target or its dependencies.",
+      doc =
+          "A depset of <code>AnalysisFailure</code> objects describing the failures that "
+              + "occurred in this target or its dependencies.",
       documented = false,
-      structField = true,
-      enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS
-  )
+      structField = true)
   public NestedSet<AnalysisFailureApiT> getCauses();
 
   /** Provider class for {@link AnalysisFailureInfoApi} objects. */
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisTestResultInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisTestResultInfoApi.java
index 344ac96..33702b0 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisTestResultInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisTestResultInfoApi.java
@@ -20,7 +20,6 @@
 import com.google.devtools.build.lib.skylarkinterface.SkylarkConstructor;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
-import com.google.devtools.build.lib.syntax.SkylarkSemantics.FlagIdentifier;
 
 /**
  * Encapsulates information about an analysis-phase error which would have occurred during a build.
@@ -38,21 +37,18 @@
 
   @SkylarkCallable(
       name = "success",
-      doc = "If true, then the analysis-phase test represented by this target passed. If "
-          + "false, the test failed.",
+      doc =
+          "If true, then the analysis-phase test represented by this target passed. If "
+              + "false, the test failed.",
       documented = false,
-      structField = true,
-      enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS
-  )
+      structField = true)
   public Boolean getSuccess();
 
   @SkylarkCallable(
       name = "message",
       doc = "A descriptive message containing information about the test and its success/failure.",
       documented = false,
-      structField = true,
-      enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS
-  )
+      structField = true)
   public String getMessage();
 
   /** Provider class for {@link AnalysisTestResultInfoApi} objects. */
@@ -63,22 +59,25 @@
         name = "AnalysisTestResultInfo",
         doc = "The <code>AnalysisTestResultInfo</code> constructor.",
         parameters = {
-            @Param(
-                name = "success",
-                type = Boolean.class,
-                named = true,
-                doc = "If true, then the analysis-phase test represented by this target should "
-                    + "pass. If false, the test should fail."),
-            @Param(
-                name = "message",
-                type = String.class,
-                named = true,
-                doc = "A descriptive message containing information about the test and its "
-                    + "success/failure.")},
-        selfCall = true,
-        enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS)
-    @SkylarkConstructor(objectType = AnalysisTestResultInfoApi.class,
+          @Param(
+              name = "success",
+              type = Boolean.class,
+              named = true,
+              doc =
+                  "If true, then the analysis-phase test represented by this target should "
+                      + "pass. If false, the test should fail."),
+          @Param(
+              name = "message",
+              type = String.class,
+              named = true,
+              doc =
+                  "A descriptive message containing information about the test and its "
+                      + "success/failure.")
+        },
+        selfCall = true)
+    @SkylarkConstructor(
+        objectType = AnalysisTestResultInfoApi.class,
         receiverNameForDoc = "AnalysisTestResultInfo")
     public AnalysisTestResultInfoApi testResultInfo(Boolean success, String message);
   }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java
index f8d5a4b..745df17 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java
@@ -18,8 +18,6 @@
 import com.google.devtools.build.lib.skylarkbuildapi.Bootstrap;
 import com.google.devtools.build.lib.skylarkbuildapi.test.AnalysisFailureInfoApi.AnalysisFailureInfoProviderApi;
 import com.google.devtools.build.lib.skylarkbuildapi.test.AnalysisTestResultInfoApi.AnalysisTestResultInfoProviderApi;
-import com.google.devtools.build.lib.syntax.FlagGuardedValue;
-import com.google.devtools.build.lib.syntax.SkylarkSemantics.FlagIdentifier;
 
 /**
  * {@link Bootstrap} for skylark objects related to testing.
@@ -41,13 +39,7 @@
   @Override
   public void addBindingsToBuilder(ImmutableMap.Builder<String, Object> builder) {
     builder.put("testing", testingModule);
-    builder.put("AnalysisFailureInfo",
-         FlagGuardedValue.onlyWhenExperimentalFlagIsTrue(
-             FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
-           analysisFailureInfoProvider));
-    builder.put("AnalysisTestResultInfo",
-        FlagGuardedValue.onlyWhenExperimentalFlagIsTrue(
-            FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
-        testResultInfoProvider));
+    builder.put("AnalysisFailureInfo", analysisFailureInfoProvider);
+    builder.put("AnalysisTestResultInfo", testResultInfoProvider);
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
index bb6222f..d53534c 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
@@ -39,8 +39,6 @@
    * be the exact name of the flag transformed to upper case (for error representation).
    */
   public enum FlagIdentifier {
-    EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS(
-        SkylarkSemantics::experimentalAnalysisTestingImprovements),
     EXPERIMENTAL_ENABLE_ANDROID_MIGRATION_APIS(
         SkylarkSemantics::experimentalEnableAndroidMigrationApis),
     EXPERIMENTAL_BUILD_SETTING_API(SkylarkSemantics::experimentalBuildSettingApi),
@@ -114,8 +112,6 @@
       AutoValue_SkylarkSemantics.class;
 
   // <== Add new options here in alphabetic order ==>
-  public abstract boolean experimentalAnalysisTestingImprovements();
-
   public abstract boolean experimentalBuildSettingApi();
 
   public abstract List<String> experimentalCcSkylarkApiEnabledPackages();
@@ -203,7 +199,6 @@
   public static final SkylarkSemantics DEFAULT_SEMANTICS =
       builder()
           // <== Add new options here in alphabetic order ==>
-          .experimentalAnalysisTestingImprovements(false)
           .experimentalBuildSettingApi(false)
           .experimentalCcSkylarkApiEnabledPackages(ImmutableList.of())
           .experimentalEnableAndroidMigrationApis(false)
@@ -247,8 +242,6 @@
   public abstract static class Builder {
 
     // <== Add new options here in alphabetic order ==>
-    public abstract Builder experimentalAnalysisTestingImprovements(boolean value);
-
     public abstract Builder experimentalBuildSettingApi(boolean value);
 
     public abstract Builder experimentalCcSkylarkApiEnabledPackages(List<String> value);
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/FunctionSplitTransitionProviderTest.java b/src/test/java/com/google/devtools/build/lib/analysis/FunctionSplitTransitionProviderTest.java
index 3507a90..18f6919 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/FunctionSplitTransitionProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/FunctionSplitTransitionProviderTest.java
@@ -627,9 +627,6 @@
 
   @Test
   public void testInvalidNativeOptionOutput_analysisTest() throws Exception {
-    setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-    writeWhitelistFile();
-
     scratch.file(
         "test/skylark/my_rule.bzl",
         "my_transition = analysis_test_transition(",
@@ -666,9 +663,6 @@
 
   @Test
   public void testInvalidOutputKey_analysisTest() throws Exception {
-    setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-    writeWhitelistFile();
-
     scratch.file(
         "test/skylark/my_rule.bzl",
         "my_transition = analysis_test_transition(",
diff --git a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
index 9f54553..c4928a7 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
@@ -118,7 +118,6 @@
   private static SkylarkSemanticsOptions buildRandomOptions(Random rand) throws Exception {
     return parseOptions(
         // <== Add new options here in alphabetic order ==>
-        "--experimental_analysis_testing_improvements=" + rand.nextBoolean(),
         "--experimental_build_setting_api=" + rand.nextBoolean(),
         "--experimental_cc_skylark_api_enabled_packages="
             + rand.nextDouble()
@@ -167,7 +166,6 @@
   private static SkylarkSemantics buildRandomSemantics(Random rand) {
     return SkylarkSemantics.builder()
         // <== Add new options here in alphabetic order ==>
-        .experimentalAnalysisTestingImprovements(rand.nextBoolean())
         .experimentalBuildSettingApi(rand.nextBoolean())
         .experimentalCcSkylarkApiEnabledPackages(
             ImmutableList.of(String.valueOf(rand.nextDouble()), String.valueOf(rand.nextDouble())))
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
index b332f98..18d9593 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
@@ -2056,8 +2056,6 @@
 
   @Test
   public void testAnalysisFailureInfo() throws Exception {
-    setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-
     scratch.file(
         "test/extension.bzl",
         "def custom_rule_impl(ctx):",
@@ -2072,7 +2070,7 @@
         "",
         "custom_rule(name = 'r')");
 
-    useConfiguration("--experimental_allow_analysis_failures=true");
+    useConfiguration("--allow_analysis_failures=true");
 
     ConfiguredTarget target = getConfiguredTarget("//test:r");
     AnalysisFailureInfo info =
@@ -2084,8 +2082,6 @@
 
   @Test
   public void testTestResultInfo() throws Exception {
-    setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-
     scratch.file(
         "test/extension.bzl",
         "def custom_rule_impl(ctx):",
@@ -2107,53 +2103,7 @@
   }
 
   @Test
-  public void testTestResultInfoWithoutFlag() throws Exception {
-    setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=false");
-
-    scratch.file(
-        "test/extension.bzl",
-        "def custom_rule_impl(ctx):",
-        "  return [AnalysisTestResultInfo(success = True, message = 'message contents')]",
-        "",
-        "custom_rule = rule(implementation = custom_rule_impl)");
-
-    scratch.file(
-        "test/BUILD",
-        "load('//test:extension.bzl', 'custom_rule')",
-        "",
-        "custom_rule(name = 'r')");
-
-    reporter.removeHandler(failFastHandler);
-    getConfiguredTarget("//test:r");
-    assertContainsEvent(
-        "AnalysisTestResultInfo is experimental and thus unavailable with the current flags. "
-            + "It may be enabled by setting --experimental_analysis_testing_improvements");
-  }
-
-  @Test
-  public void testAnalysisTestRuleWithoutFlag() throws Exception {
-    setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=false");
-
-    scratch.file(
-        "test/extension.bzl",
-        "def custom_rule_impl(ctx):",
-        "  return []",
-        "",
-        "custom_test = rule(implementation = custom_rule_impl, analysis_test = True)");
-
-    scratch.file(
-        "test/BUILD", "load('//test:extension.bzl', 'custom_test')", "", "custom_test(name = 'r')");
-
-    reporter.removeHandler(failFastHandler);
-    getConfiguredTarget("//test:r");
-    assertContainsEvent(
-        "analysis_test parameter is experimental and not available for general use");
-  }
-
-  @Test
   public void testAnalysisTestRuleWithActionRegistration() throws Exception {
-    setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-
     scratch.file(
         "test/extension.bzl",
         "def custom_rule_impl(ctx):",
@@ -2174,8 +2124,6 @@
 
   @Test
   public void testAnalysisTestRuleWithFlag() throws Exception {
-    setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-
     scratch.file(
         "test/extension.bzl",
         "def custom_rule_impl(ctx):",
@@ -2197,7 +2145,6 @@
 
   @Test
   public void testAnalysisTestTransitionOnAnalysisTest() throws Exception {
-    setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
     useConfiguration("--experimental_strict_java_deps=OFF");
 
     scratch.file(
@@ -2249,8 +2196,6 @@
 
   @Test
   public void testAnalysisTestTransitionOnNonAnalysisTest() throws Exception {
-    setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-
     scratch.file(
         "test/extension.bzl",
         "def custom_rule_impl(ctx):",
@@ -2384,10 +2329,6 @@
 
   @Test
   public void testAnalysisTestCannotDependOnAnalysisTest() throws Exception {
-    setSkylarkSemanticsOptions(
-        "--experimental_analysis_testing_improvements=true",
-        "--experimental_starlark_config_transitions=true");
-
     scratch.file(
         "test/extension.bzl",
         "",
@@ -2451,9 +2392,6 @@
   }
 
   private void setupAnalysisTestDepsLimitTest(int limit, int dependencyChainSize) throws Exception {
-    setSkylarkSemanticsOptions(
-        "--experimental_analysis_testing_improvements=true",
-        "--experimental_starlark_config_transitions=true");
     useConfiguration("--analysis_testing_deps_limit=" + limit);
 
     scratch.file(
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
index 438c9f4..ad30f46 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
@@ -2262,7 +2262,7 @@
 
     AnalysisFailureInfo info = AnalysisFailureInfo.forAnalysisFailures(ImmutableList.of(cause));
 
-    new SkylarkTest("--experimental_analysis_testing_improvements=true")
+    new SkylarkTest()
         .update("val", info)
         .setUp(
             "causes = val.causes",
@@ -2270,15 +2270,6 @@
             "message = causes.to_list()[0].message")
         .testLookup("label", Label.create("test", "test"))
         .testLookup("message", "ErrorMessage");
-
-    new SkylarkTest()
-        .update("val", info)
-        .testIfErrorContains("'AnalysisFailureInfo' has no field 'causes'", "val.causes");
-
-    new SkylarkTest()
-        .update("val", cause)
-        .testIfErrorContains("'AnalysisFailure' has no field 'message'", "val.message")
-        .testIfErrorContains("'AnalysisFailure' has no field 'label'", "val.label");
   }
 
   @Test
@@ -2286,36 +2277,25 @@
     // This test uses an arbitrary experimental flag to verify this functionality. If this
     // experimental flag were to go away, this test may be updated to use any experimental flag.
     // The flag itself is unimportant to the test.
-    FlagGuardedValue val = FlagGuardedValue.onlyWhenExperimentalFlagIsTrue(
-        FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
-        "foo");
-    String errorMessage = "GlobalSymbol is experimental and thus unavailable with the current "
-        + "flags. It may be enabled by setting --experimental_analysis_testing_improvements";
+    FlagGuardedValue val =
+        FlagGuardedValue.onlyWhenExperimentalFlagIsTrue(
+            FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API, "foo");
+    String errorMessage =
+        "GlobalSymbol is experimental and thus unavailable with the current "
+            + "flags. It may be enabled by setting --experimental_build_setting_api";
 
-    new SkylarkTest(
-            ImmutableMap.of("GlobalSymbol", val),
-            "--experimental_analysis_testing_improvements=true")
+    new SkylarkTest(ImmutableMap.of("GlobalSymbol", val), "--experimental_build_setting_api=true")
         .setUp("var = GlobalSymbol")
         .testLookup("var", "foo");
 
-    new SkylarkTest(
-            ImmutableMap.of("GlobalSymbol", val),
-            "--experimental_analysis_testing_improvements=false")
-        .testIfErrorContains(errorMessage,
-            "var = GlobalSymbol");
+    new SkylarkTest(ImmutableMap.of("GlobalSymbol", val), "--experimental_build_setting_api=false")
+        .testIfErrorContains(errorMessage, "var = GlobalSymbol");
 
-    new SkylarkTest(
-            ImmutableMap.of("GlobalSymbol", val),
-            "--experimental_analysis_testing_improvements=false")
-        .testIfErrorContains(errorMessage,
-            "def my_function():",
-            "  var = GlobalSymbol");
+    new SkylarkTest(ImmutableMap.of("GlobalSymbol", val), "--experimental_build_setting_api=false")
+        .testIfErrorContains(errorMessage, "def my_function():", "  var = GlobalSymbol");
 
-    new SkylarkTest(
-            ImmutableMap.of("GlobalSymbol", val),
-            "--experimental_analysis_testing_improvements=false")
-        .setUp("GlobalSymbol = 'other'",
-            "var = GlobalSymbol")
+    new SkylarkTest(ImmutableMap.of("GlobalSymbol", val), "--experimental_build_setting_api=false")
+        .setUp("GlobalSymbol = 'other'", "var = GlobalSymbol")
         .testLookup("var", "other");
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/StarlarkFlagGuardingTest.java b/src/test/java/com/google/devtools/build/lib/syntax/StarlarkFlagGuardingTest.java
index 9839d9a..96e9bf7 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/StarlarkFlagGuardingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/StarlarkFlagGuardingTest.java
@@ -50,7 +50,7 @@
               positional = true,
               named = false,
               type = Boolean.class,
-              enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
+              enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API,
               valueWhenDisabled = "False"),
           @Param(name = "c", positional = true, named = false, type = Integer.class),
         },
@@ -69,7 +69,7 @@
               positional = false,
               named = true,
               type = Boolean.class,
-              enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
+              enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API,
               valueWhenDisabled = "False"),
           @Param(name = "c", positional = false, named = true, type = Integer.class),
         },
@@ -88,14 +88,14 @@
               positional = true,
               named = false,
               type = Boolean.class,
-              enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
+              enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API,
               valueWhenDisabled = "False"),
           @Param(
               name = "c",
               positional = false,
               named = true,
               type = Integer.class,
-              enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
+              enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API,
               valueWhenDisabled = "3"),
           @Param(name = "d", positional = false, named = true, type = Boolean.class),
         },
@@ -121,7 +121,7 @@
               positional = false,
               named = true,
               type = Integer.class,
-              enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
+              enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API,
               valueWhenDisabled = "3"),
         },
         useEnvironment = true)
@@ -132,23 +132,23 @@
 
   @Test
   public void testPositionalsOnlyGuardedMethod() throws Exception {
-    new SkylarkTest("--experimental_analysis_testing_improvements=true")
+    new SkylarkTest("--experimental_build_setting_api=true")
         .update("mock", new Mock())
         .testEval(
             "mock.positionals_only_method(1, True, 3)", "'positionals_only_method(1, true, 3)'");
 
-    new SkylarkTest("--experimental_analysis_testing_improvements=true")
+    new SkylarkTest("--experimental_build_setting_api=true")
         .update("mock", new Mock())
         .testIfErrorContains(
             "expected value of type 'bool' for parameter 'b', "
                 + "in method call positionals_only_method(int, int) of 'Mock'",
             "mock.positionals_only_method(1, 3)");
 
-    new SkylarkTest("--experimental_analysis_testing_improvements=false")
+    new SkylarkTest("--experimental_build_setting_api=false")
         .update("mock", new Mock())
         .testEval("mock.positionals_only_method(1, 3)", "'positionals_only_method(1, false, 3)'");
 
-    new SkylarkTest("--experimental_analysis_testing_improvements=false")
+    new SkylarkTest("--experimental_build_setting_api=false")
         .update("mock", new Mock())
         .testIfErrorContains(
             "expected value of type 'int' for parameter 'c', "
@@ -158,52 +158,52 @@
 
   @Test
   public void testKeywordOnlyGuardedMethod() throws Exception {
-    new SkylarkTest("--experimental_analysis_testing_improvements=true")
+    new SkylarkTest("--experimental_build_setting_api=true")
         .update("mock", new Mock())
         .testEval(
             "mock.keywords_only_method(a=1, b=True, c=3)", "'keywords_only_method(1, true, 3)'");
 
-    new SkylarkTest("--experimental_analysis_testing_improvements=true")
+    new SkylarkTest("--experimental_build_setting_api=true")
         .update("mock", new Mock())
         .testIfErrorContains(
             "parameter 'b' has no default value, in method call "
                 + "keywords_only_method(int a, int c) of 'Mock'",
             "mock.keywords_only_method(a=1, c=3)");
 
-    new SkylarkTest("--experimental_analysis_testing_improvements=false")
+    new SkylarkTest("--experimental_build_setting_api=false")
         .update("mock", new Mock())
         .testEval("mock.keywords_only_method(a=1, c=3)", "'keywords_only_method(1, false, 3)'");
 
-    new SkylarkTest("--experimental_analysis_testing_improvements=false")
+    new SkylarkTest("--experimental_build_setting_api=false")
         .update("mock", new Mock())
         .testIfErrorContains(
             "parameter 'b' is experimental and thus unavailable with the current "
                 + "flags. It may be enabled by setting "
-                + "--experimental_analysis_testing_improvements",
+                + "--experimental_build_setting_api",
             "mock.keywords_only_method(a=1, b=True, c=3)");
   }
 
   @Test
   public void testMixedParamsMethod() throws Exception {
-    new SkylarkTest("--experimental_analysis_testing_improvements=true")
+    new SkylarkTest("--experimental_build_setting_api=true")
         .update("mock", new Mock())
         .testEval(
             "mock.mixed_params_method(1, True, c=3, d=True)",
             "'mixed_params_method(1, true, 3, true)'");
 
-    new SkylarkTest("--experimental_analysis_testing_improvements=true")
+    new SkylarkTest("--experimental_build_setting_api=true")
         .update("mock", new Mock())
         .testIfErrorContains(
             "parameter 'b' has no default value, in method call "
                 + "mixed_params_method(int, int c) of 'Mock'",
             "mock.mixed_params_method(1, c=3)");
 
-    new SkylarkTest("--experimental_analysis_testing_improvements=false")
+    new SkylarkTest("--experimental_build_setting_api=false")
         .update("mock", new Mock())
         .testEval(
             "mock.mixed_params_method(1, d=True)", "'mixed_params_method(1, false, 3, true)'");
 
-    new SkylarkTest("--experimental_analysis_testing_improvements=false")
+    new SkylarkTest("--experimental_build_setting_api=false")
         .update("mock", new Mock())
         .testIfErrorContains(
             "expected no more than 1 positional arguments, but got 2, "
@@ -213,32 +213,24 @@
 
   @Test
   public void testKeywordsMultipleFlags() throws Exception {
-    new SkylarkTest(
-            "--experimental_analysis_testing_improvements=true",
-            "--incompatible_no_attr_license=false")
+    new SkylarkTest("--experimental_build_setting_api=true", "--incompatible_no_attr_license=false")
         .update("mock", new Mock())
         .testEval(
             "mock.keywords_multiple_flags(a=42, b=True, c=0)",
             "'keywords_multiple_flags(42, true, 0)'");
 
-    new SkylarkTest(
-            "--experimental_analysis_testing_improvements=true",
-            "--incompatible_no_attr_license=false")
+    new SkylarkTest("--experimental_build_setting_api=true", "--incompatible_no_attr_license=false")
         .update("mock", new Mock())
         .testIfErrorContains(
             "parameter 'b' has no default value, in method call "
                 + "keywords_multiple_flags(int a) of 'Mock'",
             "mock.keywords_multiple_flags(a=42)");
 
-    new SkylarkTest(
-            "--experimental_analysis_testing_improvements=false",
-            "--incompatible_no_attr_license=true")
+    new SkylarkTest("--experimental_build_setting_api=false", "--incompatible_no_attr_license=true")
         .update("mock", new Mock())
         .testEval("mock.keywords_multiple_flags(a=42)", "'keywords_multiple_flags(42, false, 3)'");
 
-    new SkylarkTest(
-            "--experimental_analysis_testing_improvements=false",
-            "--incompatible_no_attr_license=true")
+    new SkylarkTest("--experimental_build_setting_api=false", "--incompatible_no_attr_license=true")
         .update("mock", new Mock())
         .testIfErrorContains(
             "parameter 'b' is deprecated and will be removed soon. It may be "
diff --git a/src/test/shell/integration/analysis_test_test.sh b/src/test/shell/integration/analysis_test_test.sh
index 2b4ae7bb..4545749 100755
--- a/src/test/shell/integration/analysis_test_test.sh
+++ b/src/test/shell/integration/analysis_test_test.sh
@@ -76,8 +76,7 @@
 my_rule_test(name = "r")
 EOF
 
-  bazel test package:r --experimental_analysis_testing_improvements \
-      >& "$TEST_log" || fail "Unexpected failure"
+  bazel test package:r >& "$TEST_log" || fail "Unexpected failure"
 
   expect_log "PASSED"
 
@@ -105,8 +104,7 @@
 my_rule_test(name = "r")
 EOF
 
-  ! bazel test package:r --experimental_analysis_testing_improvements \
-      >& "$TEST_log" || fail "Unexpected success"
+  ! bazel test package:r >& "$TEST_log" || fail "Unexpected success"
 
   expect_log "FAILED"
 
@@ -131,7 +129,7 @@
 
 test_transition = analysis_test_transition(
   settings = {
-      "//command_line_option:experimental_allow_analysis_failures" : "True" }
+      "//command_line_option:allow_analysis_failures" : "True" }
 )
 
 def _rule_impl(ctx):
@@ -159,8 +157,8 @@
 my_rule_test(name = "test_target", target_under_test = ":target_under_test")
 EOF
 
-  bazel test package:test_target --experimental_analysis_testing_improvements \
-      >& "$TEST_log" || fail "Expected test to succeed"
+  bazel test package:test_target >& "$TEST_log" \
+      || fail "Expected test to succeed"
 
   expect_log "PASSED"