aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar vladmos <vladmos@google.com>2017-10-12 17:25:24 +0200
committerGravatar Marcel Hlopko <hlopko@google.com>2017-10-13 13:52:05 +0200
commit1b98de65873054b148ced772cfa827a7bfb5ad9a (patch)
treed62e8b560be46ac3678a30e1785bbddfbe6285ca /src/main
parent6d4c1516f33dd132d9c1b2f5b228165975f8d07d (diff)
Remove the deprecated set constructor from Skylark
The `set` constructor used to be deprecated, but it was still possible to use it by providing --incompatible_disallow_set_constructor=false. RELNOTES[INC]: The flag --incompatible_disallow_set_constructor is no longer available, the deprecated `set` constructor is not available anymore. PiperOrigin-RevId: 171962361
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java45
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/BazelLibrary.java57
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java3
6 files changed, 11 insertions, 122 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java b/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
index 05cc7a1b1a..6b6fde0927 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
@@ -102,23 +102,20 @@ import java.util.HashMap;
* dependencies-after-parent ordering. Note that the latter is usually more important, so please use
* LINK_ORDER whenever possible.
*/
-// TODO(bazel-team): Remove deprecatedSkylarkName and it's associated helpers before Bazel 1.0.
+// TODO(bazel-team): Remove deprecated names from the documentation above.
public enum Order {
- STABLE_ORDER("default", "stable"),
- COMPILE_ORDER("postorder", "compile"),
- LINK_ORDER("topological", "link"),
- NAIVE_LINK_ORDER("preorder", "naive_link");
+ STABLE_ORDER("default"),
+ COMPILE_ORDER("postorder"),
+ LINK_ORDER("topological"),
+ NAIVE_LINK_ORDER("preorder");
private static final ImmutableMap<String, Order> VALUES;
- private static final ImmutableMap<String, Order> DEPRECATED_VALUES;
private final String skylarkName;
- private final String deprecatedSkylarkName;
private final NestedSet<?> emptySet;
- private Order(String skylarkName, String deprecatedSkylarkName) {
+ private Order(String skylarkName) {
this.skylarkName = skylarkName;
- this.deprecatedSkylarkName = deprecatedSkylarkName;
this.emptySet = new NestedSet<>(this);
}
@@ -134,47 +131,22 @@ public enum Order {
return skylarkName;
}
- public String getDeprecatedSkylarkName() {
- return deprecatedSkylarkName;
- }
-
/**
* Parses the given string as a nested set order
*
* @param name unique name of the order
- * @param forbidDeprecatedOrderNames if true, old style ordering names will be rejected
* @return the appropriate order instance
* @throws IllegalArgumentException if the name is not valid
*/
- public static Order parse(String name, boolean forbidDeprecatedOrderNames) {
+ public static Order parse(String name) {
if (VALUES.containsKey(name)) {
return VALUES.get(name);
- } else if (DEPRECATED_VALUES.containsKey(name)) {
- if (forbidDeprecatedOrderNames) {
- throw new IllegalArgumentException(String.format(
- "Order name '%s' is deprecated, use '%s' instead",
- name,
- DEPRECATED_VALUES.get(name).getSkylarkName()
- ));
- }
- return DEPRECATED_VALUES.get(name);
} else {
throw new IllegalArgumentException("Invalid order: " + name);
}
}
/**
- * Parses the given string as a nested set order
- *
- * @param name unique name of the order
- * @return the appropriate order instance
- * @throws IllegalArgumentException if the name is not valid
- */
- public static Order parse(String name) {
- return parse(name, false);
- }
-
- /**
* Determines whether two orders are considered compatible.
*
* <p>An order is compatible with itself (reflexivity) and all orders are compatible with
@@ -191,14 +163,11 @@ public enum Order {
Order[] tmpValues = Order.values();
HashMap<String, Order> entries = Maps.newHashMapWithExpectedSize(tmpValues.length);
- HashMap<String, Order> deprecatedEntries = Maps.newHashMapWithExpectedSize(tmpValues.length);
for (Order current : tmpValues) {
entries.put(current.getSkylarkName(), current);
- deprecatedEntries.put(current.getDeprecatedSkylarkName(), current);
}
VALUES = ImmutableMap.copyOf(entries);
- DEPRECATED_VALUES = ImmutableMap.copyOf(deprecatedEntries);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java
index e36eca2770..52db1ce009 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java
@@ -47,7 +47,6 @@ public final class SkylarkSemanticsCodec implements ObjectCodec<SkylarkSemantics
codedOut.writeBoolNoTag(semantics.incompatibleDictLiteralHasNoDuplicates());
codedOut.writeBoolNoTag(semantics.incompatibleDisallowDictPlus());
codedOut.writeBoolNoTag(semantics.incompatibleDisallowKeywordOnlyArgs());
- codedOut.writeBoolNoTag(semantics.incompatibleDisallowSetConstructor());
codedOut.writeBoolNoTag(semantics.incompatibleDisallowToplevelIfStatement());
codedOut.writeBoolNoTag(semantics.incompatibleListPlusEqualsInplace());
codedOut.writeBoolNoTag(semantics.incompatibleLoadArgumentIsLabel());
@@ -70,7 +69,6 @@ public final class SkylarkSemanticsCodec implements ObjectCodec<SkylarkSemantics
builder.incompatibleDictLiteralHasNoDuplicates(codedIn.readBool());
builder.incompatibleDisallowDictPlus(codedIn.readBool());
builder.incompatibleDisallowKeywordOnlyArgs(codedIn.readBool());
- builder.incompatibleDisallowSetConstructor(codedIn.readBool());
builder.incompatibleDisallowToplevelIfStatement(codedIn.readBool());
builder.incompatibleListPlusEqualsInplace(codedIn.readBool());
builder.incompatibleLoadArgumentIsLabel(codedIn.readBool());
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 399951c32e..cfa13646f1 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
@@ -146,17 +146,6 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable
public boolean incompatibleDisallowKeywordOnlyArgs;
@Option(
- name = "incompatible_disallow_set_constructor",
- defaultValue = "true",
- category = "incompatible changes",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
- metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
- help = "If set to true, disables the deprecated `set` constructor for depsets."
- )
- public boolean incompatibleDisallowSetConstructor;
-
- @Option(
name = "incompatible_disallow_toplevel_if_statement",
defaultValue = "true",
category = "incompatible changes",
@@ -254,7 +243,6 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable
.incompatibleDictLiteralHasNoDuplicates(incompatibleDictLiteralHasNoDuplicates)
.incompatibleDisallowDictPlus(incompatibleDisallowDictPlus)
.incompatibleDisallowKeywordOnlyArgs(incompatibleDisallowKeywordOnlyArgs)
- .incompatibleDisallowSetConstructor(incompatibleDisallowSetConstructor)
.incompatibleDisallowToplevelIfStatement(incompatibleDisallowToplevelIfStatement)
.incompatibleListPlusEqualsInplace(incompatibleListPlusEqualsInplace)
.incompatibleLoadArgumentIsLabel(incompatibleLoadArgumentIsLabel)
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BazelLibrary.java b/src/main/java/com/google/devtools/build/lib/syntax/BazelLibrary.java
index 6f1d1ac30b..d019e91b75 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/BazelLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/BazelLibrary.java
@@ -114,8 +114,7 @@ public class BazelLibrary {
defaultValue = "None"
)
},
- useLocation = true,
- useEnvironment = true
+ useLocation = true
)
private static final BuiltinFunction depset =
new BuiltinFunction("depset") {
@@ -124,13 +123,11 @@ public class BazelLibrary {
String orderString,
Object direct,
Object transitive,
- Location loc,
- Environment env)
+ Location loc)
throws EvalException {
Order order;
try {
- order = Order.parse(
- orderString, env.getSemantics().incompatibleDisallowSetConstructor());
+ order = Order.parse(orderString);
} catch (IllegalArgumentException ex) {
throw new EvalException(loc, ex);
}
@@ -178,52 +175,6 @@ public class BazelLibrary {
}
@SkylarkSignature(
- name = "set",
- returnType = SkylarkNestedSet.class,
- documentationReturnType = SkylarkNestedSet.LegacySet.class,
- doc =
- "A temporary alias for <a href=\"#depset\">depset</a>. "
- + "Deprecated in favor of <code>depset</code>.",
- parameters = {
- @Param(
- name = "items",
- type = Object.class,
- defaultValue = "[]",
- doc = "Same as for <a href=\"#depset\">depset</a>."
- ),
- @Param(
- name = "order",
- type = String.class,
- defaultValue = "\"default\"",
- doc = "Same as for <a href=\"#depset\">depset</a>."
- )
- },
- useLocation = true,
- useEnvironment = true
- )
- private static final BuiltinFunction set =
- new BuiltinFunction("set") {
- public SkylarkNestedSet invoke(Object items, String order, Location loc, Environment env)
- throws EvalException {
- if (env.getSemantics().incompatibleDisallowSetConstructor()) {
- throw new EvalException(
- loc,
- "The `set` constructor for depsets is deprecated and will be removed. Please use "
- + "the `depset` constructor instead. You can temporarily enable the "
- + "deprecated `set` constructor by passing the flag "
- + "--incompatible_disallow_set_constructor=false");
- }
- try {
- return new SkylarkNestedSet(
- Order.parse(order, /*forbidDeprecatedOrderNames=*/false),
- items, loc);
- } catch (IllegalArgumentException ex) {
- throw new EvalException(loc, ex);
- }
- }
- };
-
- @SkylarkSignature(
name = "union",
objectType = SkylarkNestedSet.class,
returnType = SkylarkNestedSet.class,
@@ -304,7 +255,7 @@ public class BazelLibrary {
};
private static Environment.Frame createGlobals() {
- List<BaseFunction> bazelGlobalFunctions = ImmutableList.of(select, depset, set, type);
+ List<BaseFunction> bazelGlobalFunctions = ImmutableList.of(select, depset, type);
try (Mutability mutability = Mutability.create("BUILD")) {
Environment env = Environment.builder(mutability).build();
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java
index 2915a8db83..f72f689d57 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java
@@ -92,20 +92,6 @@ public final class SkylarkNestedSet implements SkylarkValue, SkylarkQueryable {
@Nullable
private final List<NestedSet> transitiveItems;
- // Dummy class used to create a documentation for the deprecated `set` type
- // TODO(bazel-team): remove before the end of 2017
- @SkylarkModule(
- name = "set",
- category = SkylarkModuleCategory.BUILTIN,
- doc = "A deprecated alias for <a href=\"depset.html\">depset</a>. "
- + "Please use <a href=\"depset.html\">depset</a> instead. "
- + "If you need a hash set that supports O(1) membership testing "
- + "consider using a <a href=\"dict.html\">dict</a>."
- )
- static final class LegacySet {
- private LegacySet() {}
- }
-
public SkylarkNestedSet(Order order, Object item, Location loc) throws EvalException {
this(order, SkylarkType.TOP, item, loc, null);
}
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 7fbfc3fc6e..8fdfaf5cd1 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
@@ -46,7 +46,6 @@ public abstract class SkylarkSemantics {
public abstract boolean incompatibleDictLiteralHasNoDuplicates();
public abstract boolean incompatibleDisallowDictPlus();
public abstract boolean incompatibleDisallowKeywordOnlyArgs();
- public abstract boolean incompatibleDisallowSetConstructor();
public abstract boolean incompatibleDisallowToplevelIfStatement();
public abstract boolean incompatibleListPlusEqualsInplace();
public abstract boolean incompatibleLoadArgumentIsLabel();
@@ -68,7 +67,6 @@ public abstract class SkylarkSemantics {
.incompatibleDictLiteralHasNoDuplicates(true)
.incompatibleDisallowDictPlus(false)
.incompatibleDisallowKeywordOnlyArgs(true)
- .incompatibleDisallowSetConstructor(true)
.incompatibleDisallowToplevelIfStatement(true)
.incompatibleListPlusEqualsInplace(false)
.incompatibleLoadArgumentIsLabel(false)
@@ -90,7 +88,6 @@ public abstract class SkylarkSemantics {
public abstract Builder incompatibleDictLiteralHasNoDuplicates(boolean value);
public abstract Builder incompatibleDisallowDictPlus(boolean value);
public abstract Builder incompatibleDisallowKeywordOnlyArgs(boolean value);
- public abstract Builder incompatibleDisallowSetConstructor(boolean value);
public abstract Builder incompatibleDisallowToplevelIfStatement(boolean value);
public abstract Builder incompatibleListPlusEqualsInplace(boolean value);
public abstract Builder incompatibleLoadArgumentIsLabel(boolean value);