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);