Delete the flag --incompatible_no_output_attr_default.

https://github.com/bazelbuild/bazel/issues/7950

RELNOTES: The flag `incompatible_no_output_attr_default` is removed.
PiperOrigin-RevId: 302635771
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java
index 91305aa7..e895d07 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java
@@ -680,7 +680,6 @@
 
   @Override
   public Descriptor outputAttribute(
-      Object defaultValue, // Label | StarlarkFunction
       String doc,
       Boolean mandatory,
       StarlarkThread thread)
@@ -688,16 +687,12 @@
     BazelStarlarkContext.from(thread).checkLoadingOrWorkspacePhase("attr.output");
 
     return createNonconfigurableAttrDescriptor(
-        "output",
-        optionMap(DEFAULT_ARG, defaultValue, MANDATORY_ARG, mandatory),
-        BuildType.OUTPUT,
-        thread);
+        "output", optionMap(MANDATORY_ARG, mandatory), BuildType.OUTPUT, thread);
   }
 
   @Override
   public Descriptor outputListAttribute(
       Boolean allowEmpty,
-      Object defaultValue, // Sequence | StarlarkFunction
       String doc,
       Boolean mandatory,
       Boolean nonEmpty,
@@ -708,8 +703,6 @@
     return createAttrDescriptor(
         "output_list",
         optionMap(
-            DEFAULT_ARG,
-            defaultValue,
             MANDATORY_ARG,
             mandatory,
             NON_EMPTY_ARG,
diff --git a/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java b/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
index a540379..dfb5139 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
@@ -483,20 +483,6 @@
   public boolean incompatibleNoImplicitFileExport;
 
   @Option(
-      name = "incompatible_no_output_attr_default",
-      defaultValue = "true",
-      documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
-      effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS},
-      metadataTags = {
-        OptionMetadataTag.INCOMPATIBLE_CHANGE,
-        OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES
-      },
-      help =
-          "If set to true, disables the `default` parameter of the `attr.output` and "
-              + "`attr.output_list` attribute definition functions.")
-  public boolean incompatibleNoOutputAttrDefault;
-
-  @Option(
       name = "incompatible_no_rule_outputs_param",
       defaultValue = "false",
       documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
@@ -704,7 +690,6 @@
             .incompatibleNewActionsApi(incompatibleNewActionsApi)
             .incompatibleNoAttrLicense(incompatibleNoAttrLicense)
             .incompatibleNoImplicitFileExport(incompatibleNoImplicitFileExport)
-            .incompatibleNoOutputAttrDefault(incompatibleNoOutputAttrDefault)
             .incompatibleNoRuleOutputsParam(incompatibleNoRuleOutputsParam)
             .incompatibleNoSupportToolsInActionInputs(incompatibleNoSupportToolsInActionInputs)
             .incompatibleNoTargetOutputGroup(incompatibleNoTargetOutputGroup)
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/SkylarkAttrApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/SkylarkAttrApi.java
index 24f39a6..dca25cb 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/SkylarkAttrApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/SkylarkAttrApi.java
@@ -728,19 +728,6 @@
       doc = "Creates a schema for an output (label) attribute." + OUTPUT_ATTR_TEXT,
       parameters = {
         @Param(
-            name = DEFAULT_ARG,
-            allowedTypes = {
-              @ParamType(type = Label.class),
-              @ParamType(type = StarlarkFunction.class)
-            },
-            noneable = true,
-            defaultValue = "None",
-            named = true,
-            positional = false,
-            disableWithFlag = FlagIdentifier.INCOMPATIBLE_NO_OUTPUT_ATTR_DEFAULT,
-            valueWhenDisabled = "None",
-            doc = DEFAULT_DOC),
-        @Param(
             name = DOC_ARG,
             type = String.class,
             defaultValue = "''",
@@ -756,8 +743,7 @@
             doc = MANDATORY_DOC)
       },
       useStarlarkThread = true)
-  Descriptor outputAttribute(
-      Object defaultValue, String doc, Boolean mandatory, StarlarkThread thread)
+  Descriptor outputAttribute(String doc, Boolean mandatory, StarlarkThread thread)
       throws EvalException;
 
   @SkylarkCallable(
@@ -771,19 +757,6 @@
             doc = ALLOW_EMPTY_DOC,
             named = true),
         @Param(
-            name = DEFAULT_ARG,
-            allowedTypes = {
-              @ParamType(type = Sequence.class, generic1 = Label.class),
-              @ParamType(type = StarlarkFunction.class)
-            },
-            noneable = true,
-            defaultValue = "None",
-            named = true,
-            positional = false,
-            disableWithFlag = FlagIdentifier.INCOMPATIBLE_NO_OUTPUT_ATTR_DEFAULT,
-            valueWhenDisabled = "None",
-            doc = DEFAULT_DOC),
-        @Param(
             name = DOC_ARG,
             type = String.class,
             defaultValue = "''",
@@ -808,7 +781,6 @@
       useStarlarkThread = true)
   Descriptor outputListAttribute(
       Boolean allowEmpty,
-      Object defaultValue,
       String doc,
       Boolean mandatory,
       Boolean nonEmpty,
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
index 28c7dd7..41ef0d7 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
@@ -74,8 +74,6 @@
         "incompatible_applicable_licenses";
     public static final String INCOMPATIBLE_DISABLE_DEPSET_INPUTS =
         "incompatible_disable_depset_inputs";
-    public static final String INCOMPATIBLE_NO_OUTPUT_ATTR_DEFAULT =
-        "incompatible_no_output_attr_default";
     public static final String INCOMPATIBLE_NO_RULE_OUTPUTS_PARAM =
         "incompatible_no_rule_outputs_param";
     public static final String INCOMPATIBLE_NO_TARGET_OUTPUT_GROUP =
@@ -127,8 +125,6 @@
         return incompatibleApplicableLicenses();
       case FlagIdentifier.INCOMPATIBLE_DISABLE_DEPSET_INPUTS:
         return incompatibleDisableDepsetItems();
-      case FlagIdentifier.INCOMPATIBLE_NO_OUTPUT_ATTR_DEFAULT:
-        return incompatibleNoOutputAttrDefault();
       case FlagIdentifier.INCOMPATIBLE_NO_RULE_OUTPUTS_PARAM:
         return incompatibleNoRuleOutputsParam();
       case FlagIdentifier.INCOMPATIBLE_NO_TARGET_OUTPUT_GROUP:
@@ -240,8 +236,6 @@
 
   public abstract boolean incompatibleNoImplicitFileExport();
 
-  public abstract boolean incompatibleNoOutputAttrDefault();
-
   public abstract boolean incompatibleNoRuleOutputsParam();
 
   public abstract boolean incompatibleNoSupportToolsInActionInputs();
@@ -336,7 +330,6 @@
           .incompatibleNewActionsApi(true)
           .incompatibleNoAttrLicense(true)
           .incompatibleNoImplicitFileExport(false)
-          .incompatibleNoOutputAttrDefault(true)
           .incompatibleNoRuleOutputsParam(false)
           .incompatibleNoSupportToolsInActionInputs(true)
           .incompatibleNoTargetOutputGroup(true)
@@ -417,8 +410,6 @@
 
     public abstract Builder incompatibleNoImplicitFileExport(boolean value);
 
-    public abstract Builder incompatibleNoOutputAttrDefault(boolean value);
-
     public abstract Builder incompatibleNoRuleOutputsParam(boolean value);
 
     public abstract Builder incompatibleNoSupportToolsInActionInputs(boolean value);
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkAttrApi.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkAttrApi.java
index e999b13..762c1fe 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkAttrApi.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkAttrApi.java
@@ -166,22 +166,20 @@
   }
 
   @Override
-  public Descriptor outputAttribute(
-      Object defaultO, String doc, Boolean mandatory, StarlarkThread thread) throws EvalException {
-    return new FakeDescriptor(AttributeType.OUTPUT, doc, mandatory, ImmutableList.of(), defaultO);
+  public Descriptor outputAttribute(String doc, Boolean mandatory, StarlarkThread thread)
+      throws EvalException {
+    return new FakeDescriptor(AttributeType.OUTPUT, doc, mandatory, ImmutableList.of(), "");
   }
 
   @Override
   public Descriptor outputListAttribute(
       Boolean allowEmpty,
-      Object defaultList,
       String doc,
       Boolean mandatory,
       Boolean nonEmpty,
       StarlarkThread thread)
       throws EvalException {
-    return new FakeDescriptor(
-        AttributeType.OUTPUT_LIST, doc, mandatory, ImmutableList.of(), defaultList);
+    return new FakeDescriptor(AttributeType.OUTPUT_LIST, doc, mandatory, ImmutableList.of(), "");
   }
 
   @Override
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 e80bf34..6a183e8 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
@@ -154,7 +154,6 @@
         "--incompatible_new_actions_api=" + rand.nextBoolean(),
         "--incompatible_no_attr_license=" + rand.nextBoolean(),
         "--incompatible_no_implicit_file_export=" + rand.nextBoolean(),
-        "--incompatible_no_output_attr_default=" + rand.nextBoolean(),
         "--incompatible_no_rule_outputs_param=" + rand.nextBoolean(),
         "--incompatible_no_support_tools_in_action_inputs=" + rand.nextBoolean(),
         "--incompatible_no_target_output_group=" + rand.nextBoolean(),
@@ -209,7 +208,6 @@
         .incompatibleNewActionsApi(rand.nextBoolean())
         .incompatibleNoAttrLicense(rand.nextBoolean())
         .incompatibleNoImplicitFileExport(rand.nextBoolean())
-        .incompatibleNoOutputAttrDefault(rand.nextBoolean())
         .incompatibleNoRuleOutputsParam(rand.nextBoolean())
         .incompatibleNoSupportToolsInActionInputs(rand.nextBoolean())
         .incompatibleNoTargetOutputGroup(rand.nextBoolean())
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 774f52e..367341f 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
@@ -1239,8 +1239,6 @@
 
   @Test
   public void testNoOutputAttrDefault() throws Exception {
-    setSkylarkSemanticsOptions("--incompatible_no_output_attr_default=true");
-
     scratch.file(
         "test/extension.bzl",
         "load('//myinfo:myinfo.bzl', 'MyInfo')",
@@ -1263,15 +1261,11 @@
 
     reporter.removeHandler(failFastHandler);
     getConfiguredTarget("//test:r");
-    assertContainsEvent(
-        "parameter 'default' is deprecated and will be removed soon. It may be "
-            + "temporarily re-enabled by setting --incompatible_no_output_attr_default=false");
+    assertContainsEvent("got unexpected keyword argument 'default'");
   }
 
   @Test
   public void testNoOutputListAttrDefault() throws Exception {
-    setSkylarkSemanticsOptions("--incompatible_no_output_attr_default=true");
-
     scratch.file(
         "test/extension.bzl",
         "def custom_rule_impl(ctx):",
@@ -1288,45 +1282,7 @@
 
     reporter.removeHandler(failFastHandler);
     getConfiguredTarget("//test:r");
-    assertContainsEvent(
-        "parameter 'default' is deprecated and will be removed soon. It may be "
-            + "temporarily re-enabled by setting --incompatible_no_output_attr_default=false");
-  }
-
-  @Test
-  public void testLegacyOutputAttrDefault() throws Exception {
-    // Note that use of the "default" parameter of attr.output and attr.output_label is deprecated
-    // and barely functional. This test simply serves as proof-of-concept verification that the
-    // legacy behavior remains intact.
-    setSkylarkSemanticsOptions("--incompatible_no_output_attr_default=false");
-
-    scratch.file(
-        "test/skylark/extension.bzl",
-        "load('//myinfo:myinfo.bzl', 'MyInfo')",
-        "def custom_rule_impl(ctx):",
-        "  out_file = ctx.actions.declare_file(ctx.attr._o1.name)",
-        "  ctx.actions.write(output=out_file, content='hi')",
-        "  return [MyInfo(o1=ctx.attr._o1,",
-        "                 o2=ctx.attr.o2)]",
-        "",
-        "def output_fn():",
-        "  return Label('//test/skylark:foo.txt')",
-        "",
-        "custom_rule = rule(implementation = custom_rule_impl,",
-        "  attrs = {'_o1': attr.output(default = output_fn),",
-        "           'o2': attr.output_list(default = [])})");
-
-    scratch.file(
-        "test/skylark/BUILD",
-        "load('//test/skylark:extension.bzl', 'custom_rule')",
-        "",
-        "custom_rule(name = 'cr')");
-
-    ConfiguredTarget target = getConfiguredTarget("//test/skylark:cr");
-    StructImpl myInfo = getMyInfoFromTarget(target);
-    assertThat(myInfo.getValue("o1"))
-        .isEqualTo(Label.parseAbsoluteUnchecked("//test/skylark:foo.txt"));
-    assertThat(myInfo.getValue("o2")).isEqualTo(StarlarkList.empty());
+    assertContainsEvent("got unexpected keyword argument 'default'");
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/EnablingAndDisablingFlag.java b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/EnablingAndDisablingFlag.java
index 13d6c91..27e3882 100644
--- a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/EnablingAndDisablingFlag.java
+++ b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/EnablingAndDisablingFlag.java
@@ -31,8 +31,8 @@
         @Param(name = "one", type = String.class, named = true),
         @Param(name = "two", type = Integer.class, named = true),
       },
-      enableOnlyWithFlag = FlagIdentifier.INCOMPATIBLE_NO_OUTPUT_ATTR_DEFAULT,
-      disableWithFlag = FlagIdentifier.INCOMPATIBLE_NO_OUTPUT_ATTR_DEFAULT)
+      enableOnlyWithFlag = FlagIdentifier.INCOMPATIBLE_APPLICABLE_LICENSES,
+      disableWithFlag = FlagIdentifier.INCOMPATIBLE_APPLICABLE_LICENSES)
   public String someMethod(String one, Integer two) {
     return "foo";
   }