Disallow rule implementation functions to return a struct
Such functions should return a list of providers instead.
This change represents a deprecation of the "old" syntax.
This is an incompatible change attached to new flag --incompatible_disallow_struct_provider_syntax.
See https://docs.google.com/document/d/14A9HK8Jn2jErMayLEE3nrNJIxNfZWN_slFbhgtS6-aM for details.
Migration tracker: #7347
Progress toward #6241
RELNOTES: New incompatible flag --incompatible_disallow_struct_provider_syntax removes the ability for rule implementation functions to return struct. Such functions should return a list of providers instead. Migration tracking: https://github.com/bazelbuild/bazel/issues/7347
PiperOrigin-RevId: 232547460
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 0396007..3a7882a 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
@@ -158,6 +158,8 @@
public abstract boolean incompatibleDisallowOldStyleArgsAdd();
+ public abstract boolean incompatibleDisallowStructProviderSyntax();
+
public abstract boolean incompatibleExpandDirectories();
public abstract boolean incompatibleGenerateJavaCommonSourceJar();
@@ -225,6 +227,7 @@
.incompatibleDisallowLegacyJavaInfo(false)
.incompatibleDisallowLoadLabelsToCrossPackageBoundaries(false)
.incompatibleDisallowOldStyleArgsAdd(false)
+ .incompatibleDisallowStructProviderSyntax(false)
.incompatibleExpandDirectories(true)
.incompatibleGenerateJavaCommonSourceJar(true)
.incompatibleNewActionsApi(false)
@@ -290,6 +293,8 @@
public abstract Builder incompatibleDisallowOldStyleArgsAdd(boolean value);
+ public abstract Builder incompatibleDisallowStructProviderSyntax(boolean value);
+
public abstract Builder incompatibleExpandDirectories(boolean value);
public abstract Builder incompatibleGenerateJavaCommonSourceJar(boolean value);