Delete the flag --incompatible_restrict_named_params.

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

RELNOTES: The flag `--incompatible_restrict_named_params` is removed.
PiperOrigin-RevId: 303323249
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 5fc5bbf..23e1e10 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
@@ -584,20 +584,6 @@
   public boolean incompatibleUseCcConfigureFromRulesCc;
 
   @Option(
-      name = "incompatible_restrict_named_params",
-      defaultValue = "true",
-      documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
-      effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
-      metadataTags = {
-        OptionMetadataTag.INCOMPATIBLE_CHANGE,
-        OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES
-      },
-      help =
-          "If set to true, restricts a number of Starlark built-in function parameters to be "
-              + "only specifiable positionally (and not by keyword).")
-  public boolean incompatibleRestrictNamedParams;
-
-  @Option(
       name = "incompatible_depset_for_libraries_to_link_getter",
       defaultValue = "true",
       documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
@@ -705,7 +691,6 @@
             .incompatibleNoRuleOutputsParam(incompatibleNoRuleOutputsParam)
             .incompatibleNoSupportToolsInActionInputs(incompatibleNoSupportToolsInActionInputs)
             .incompatibleNoTargetOutputGroup(incompatibleNoTargetOutputGroup)
-            .incompatibleRestrictNamedParams(incompatibleRestrictNamedParams)
             .incompatibleRunShellCommandString(incompatibleRunShellCommandString)
             .incompatibleVisibilityPrivateAttributesAtDefinition(
                 incompatibleVisibilityPrivateAttributesAtDefinition)
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ParamDescriptor.java b/src/main/java/com/google/devtools/build/lib/syntax/ParamDescriptor.java
index a6be014..c0c8c65 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/ParamDescriptor.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/ParamDescriptor.java
@@ -85,8 +85,7 @@
         type,
         generic,
         noneable,
-        param.named()
-            || (param.legacyNamed() && !starlarkSemantics.incompatibleRestrictNamedParams()),
+        param.named(),
         param.positional(),
         getType(type, generic, param.allowedTypes(), noneable),
         disabledByFlag);
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 a69bf73..c1a375e 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
@@ -269,8 +269,6 @@
 
   public abstract boolean incompatibleNoTargetOutputGroup();
 
-  public abstract boolean incompatibleRestrictNamedParams();
-
   public abstract boolean incompatibleRunShellCommandString();
 
   public abstract boolean incompatibleVisibilityPrivateAttributesAtDefinition();
@@ -362,7 +360,6 @@
           .incompatibleNoSupportToolsInActionInputs(true)
           .incompatibleNoTargetOutputGroup(true)
           .incompatibleRunShellCommandString(false)
-          .incompatibleRestrictNamedParams(true)
           .incompatibleVisibilityPrivateAttributesAtDefinition(false)
           .internalSkylarkFlagTestCanary(false)
           .incompatibleDoNotSplitLinkingCmdline(true)
@@ -446,8 +443,6 @@
 
     public abstract Builder incompatibleNoTargetOutputGroup(boolean value);
 
-    public abstract Builder incompatibleRestrictNamedParams(boolean value);
-
     public abstract Builder incompatibleRunShellCommandString(boolean value);
 
     public abstract Builder incompatibleVisibilityPrivateAttributesAtDefinition(boolean value);
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 d3d2e05..7011d0927 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
@@ -158,7 +158,6 @@
         "--incompatible_no_rule_outputs_param=" + rand.nextBoolean(),
         "--incompatible_no_support_tools_in_action_inputs=" + rand.nextBoolean(),
         "--incompatible_no_target_output_group=" + rand.nextBoolean(),
-        "--incompatible_restrict_named_params=" + rand.nextBoolean(),
         "--incompatible_run_shell_command_string=" + rand.nextBoolean(),
         "--incompatible_visibility_private_attributes_at_definition=" + rand.nextBoolean(),
         "--incompatible_require_linker_input_cc_api=" + rand.nextBoolean(),
@@ -213,7 +212,6 @@
         .incompatibleNoRuleOutputsParam(rand.nextBoolean())
         .incompatibleNoSupportToolsInActionInputs(rand.nextBoolean())
         .incompatibleNoTargetOutputGroup(rand.nextBoolean())
-        .incompatibleRestrictNamedParams(rand.nextBoolean())
         .incompatibleRunShellCommandString(rand.nextBoolean())
         .incompatibleVisibilityPrivateAttributesAtDefinition(rand.nextBoolean())
         .incompatibleRequireLinkerInputCcApi(rand.nextBoolean())
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java b/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
index e180595..428a7b1 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
@@ -690,50 +690,9 @@
         .testExpression("tuple({1: 'foo', 2: 'bar'}) == (1, 2)", true);
   }
 
-  // Verifies some legacy functionality that should be deprecated and removed via
-  // an incompatible-change flag: parameters in MethodLibrary functions may be specified by
-  // keyword, or may be None, even in places where it does not quite make sense.
   @Test
-  public void testLegacyNamed() throws Exception {
-    new Scenario("--incompatible_restrict_named_params=false")
-        // Parameters which may be specified by keyword but are not explicitly 'named'.
-        .testExpression("all(elements=[True, True])", Boolean.TRUE)
-        .testExpression("any(elements=[True, False])", Boolean.TRUE)
-        .testEval("sorted(iterable=[3, 0, 2], key=None, reverse=False)", "[0, 2, 3]")
-        .testEval("reversed(sequence=[3, 2, 0])", "[0, 2, 3]")
-        .testEval("tuple(x=[1, 2])", "(1, 2)")
-        .testEval("list(x=(1, 2))", "[1, 2]")
-        .testEval("len(x=(1, 2))", "2")
-        .testEval("str(x=(1, 2))", "'(1, 2)'")
-        .testEval("repr(x=(1, 2))", "'(1, 2)'")
-        .testExpression("bool(x=3)", Boolean.TRUE)
-        .testEval("int(x=3)", "3")
-        .testEval("dict(args=[(1, 2)])", "{1 : 2}")
-        .testExpression("bool(x=3)", Boolean.TRUE)
-        .testEval("enumerate(list=[40, 41])", "[(0, 40), (1, 41)]")
-        .testExpression("hash(value='hello')", "hello".hashCode())
-        .testEval("range(start_or_stop=3, stop_or_none=9, step=2)", "range(3, 9, 2)")
-        .testExpression("hasattr(x=depset(), name='to_list')", Boolean.TRUE)
-        .testExpression("bool(x=3)", Boolean.TRUE)
-        .testExpression("getattr(x='hello', name='cnt', default='default')", "default")
-        .testEval(
-            "dir(x={})",
-            "[\"clear\", \"get\", \"items\", \"keys\","
-                + " \"pop\", \"popitem\", \"setdefault\", \"update\", \"values\"]")
-        .testEval("type(x=5)", "'int'")
-        .testEval("str(depset(items=[0,1]))", "'depset([0, 1])'")
-        .testIfErrorContains("hello", "fail(msg='hello', attr='someattr')")
-        // Parameters which may be None but are not explicitly 'noneable'
-        .testExpression("hasattr(x=None, name='to_list')", Boolean.FALSE)
-        .testEval("getattr(x=None, name='count', default=None)", "None")
-        .testEval("dir(None)", "[]")
-        .testIfErrorContains("None", "fail(msg=None)")
-        .testEval("type(None)", "'NoneType'");
-  }
-
-  @Test
-  public void testExperimentalStarlarkConfig() throws Exception {
-    new Scenario("--incompatible_restrict_named_params")
+  public void testPositionalOnlyArgument() throws Exception {
+    new Scenario()
         .testIfErrorContains(
             "join() got named argument for positional-only parameter 'elements'",
             "','.join(elements=['foo', 'bar'])");
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 403fbce..e53dcea 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
@@ -1093,32 +1093,6 @@
         .testLookup("b", "with_params(1, true, false, true, false, a)");
   }
 
-  @Test
-  public void testLegacyNamed() throws Exception {
-    new Scenario("--incompatible_restrict_named_params=false")
-        .update("mock", new Mock())
-        .setUp("b = mock.legacy_method(True, legacyNamed=True, named=True)")
-        .testLookup("b", "legacy_method(true, true, true)");
-
-    new Scenario("--incompatible_restrict_named_params=false")
-        .update("mock", new Mock())
-        .setUp("b = mock.legacy_method(True, True, named=True)")
-        .testLookup("b", "legacy_method(true, true, true)");
-
-    // Verify legacyNamed also works with proxy method objects.
-    new Scenario("--incompatible_restrict_named_params=false")
-        .update("mock", new Mock())
-        .setUp(
-            "m = mock.proxy_methods_object()",
-            "b = m.legacy_method(True, legacyNamed=True, named=True)")
-        .testLookup("b", "legacy_method(true, true, true)");
-
-    new Scenario("--incompatible_restrict_named_params=false")
-        .update("mock", new Mock())
-        .setUp("m = mock.proxy_methods_object()", "b = m.legacy_method(True, True, named=True)")
-        .testLookup("b", "legacy_method(true, true, true)");
-  }
-
   /**
    * This test verifies an error is raised when a method parameter is set both positionally and
    * by name.