aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar lberki <lberki@google.com>2018-03-06 10:04:28 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-06 10:06:18 -0800
commita345f04fd6d45d1317f114f086f529e4fd3b6a00 (patch)
treecd6a166a7bed5a575f08cef1c204dd71065103ea /src/main/java/com/google/devtools/build/lib
parent2f3b2b528d1aa91415a674c48abf3195e0b0b98c (diff)
Add a command line option to disallow vardef()s with three arguments.
RELNOTES: None. PiperOrigin-RevId: 188038131
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-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/SkylarkSemantics.java4
3 files changed, 18 insertions, 0 deletions
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 978e7e9a3f..9dd52ccfd9 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
@@ -49,6 +49,7 @@ public final class SkylarkSemanticsCodec implements ObjectCodec<SkylarkSemantics
codedOut.writeBoolNoTag(semantics.incompatibleDisableGlobTracking());
codedOut.writeBoolNoTag(semantics.incompatibleDisableObjcProviderResources());
codedOut.writeBoolNoTag(semantics.incompatibleDisallowDictPlus());
+ codedOut.writeBoolNoTag(semantics.incompatibleDisallowThreeArgVardef());
codedOut.writeBoolNoTag(semantics.incompatibleDisallowToplevelIfStatement());
codedOut.writeBoolNoTag(semantics.incompatibleDisallowUncalledSetConstructor());
codedOut.writeBoolNoTag(semantics.incompatibleLoadArgumentIsLabel());
@@ -72,6 +73,7 @@ public final class SkylarkSemanticsCodec implements ObjectCodec<SkylarkSemantics
builder.incompatibleDisableGlobTracking(codedIn.readBool());
builder.incompatibleDisableObjcProviderResources(codedIn.readBool());
builder.incompatibleDisallowDictPlus(codedIn.readBool());
+ builder.incompatibleDisallowThreeArgVardef(codedIn.readBool());
builder.incompatibleDisallowToplevelIfStatement(codedIn.readBool());
builder.incompatibleDisallowUncalledSetConstructor(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 86f6b44b9f..66801ae45c 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
@@ -133,6 +133,17 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable
public boolean incompatibleDisallowDictPlus;
@Option(
+ name = "incompatible_disallow_three_arg_vardef",
+ defaultValue = "false",
+ category = "incompatible changes",
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
+ help = "If set to true, three-argument `vardef()` functions are disallowed."
+ )
+ public boolean incompatibleDisallowThreeArgVardef;
+
+ @Option(
name = "incompatible_disallow_toplevel_if_statement",
defaultValue = "true",
category = "incompatible changes",
@@ -251,6 +262,7 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable
.incompatibleDisableGlobTracking(incompatibleDisableGlobTracking)
.incompatibleDisableObjcProviderResources(incompatibleDisableObjcProviderResources)
.incompatibleDisallowDictPlus(incompatibleDisallowDictPlus)
+ .incompatibleDisallowThreeArgVardef(incompatibleDisallowThreeArgVardef)
.incompatibleDisallowToplevelIfStatement(incompatibleDisallowToplevelIfStatement)
.incompatibleDisallowUncalledSetConstructor(incompatibleDisallowUncalledSetConstructor)
.incompatibleLoadArgumentIsLabel(incompatibleLoadArgumentIsLabel)
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 95edc23fc3..570511bcb2 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
@@ -48,8 +48,10 @@ public abstract class SkylarkSemantics {
public abstract boolean incompatibleDisableObjcProviderResources();
public abstract boolean incompatibleDisallowDictPlus();
+ public abstract boolean incompatibleDisallowThreeArgVardef();
public abstract boolean incompatibleDisallowToplevelIfStatement();
public abstract boolean incompatibleDisallowUncalledSetConstructor();
+
public abstract boolean incompatibleLoadArgumentIsLabel();
public abstract boolean incompatibleNewActionsApi();
public abstract boolean incompatibleShowAllPrintMessages();
@@ -82,6 +84,7 @@ public abstract class SkylarkSemantics {
.incompatibleDisableGlobTracking(true)
.incompatibleDisableObjcProviderResources(false)
.incompatibleDisallowDictPlus(false)
+ .incompatibleDisallowThreeArgVardef(false)
.incompatibleDisallowToplevelIfStatement(true)
.incompatibleDisallowUncalledSetConstructor(true)
.incompatibleLoadArgumentIsLabel(true)
@@ -107,6 +110,7 @@ public abstract class SkylarkSemantics {
public abstract Builder incompatibleDisableObjcProviderResources(boolean value);
public abstract Builder incompatibleDisallowDictPlus(boolean value);
+ public abstract Builder incompatibleDisallowThreeArgVardef(boolean value);
public abstract Builder incompatibleDisallowToplevelIfStatement(boolean value);
public abstract Builder incompatibleDisallowUncalledSetConstructor(boolean value);
public abstract Builder incompatibleLoadArgumentIsLabel(boolean value);