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.