Remove "return struct" in rule implementation of some Bazel tests (#2)

This makes the affected tests compatible with --incompatible_disallow_struct_provider_syntax

Progress toward #7347.

RELNOTES: None.
PiperOrigin-RevId: 244210656
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java
index a26e17f..08df7c2 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java
@@ -599,11 +599,11 @@
         "x/extension.bzl",
         "def _aspect_impl(target, ctx):",
         "  ctx.actions.do_nothing(mnemonic='Mnemonic')",
-        "  return struct()",
+        "  return []",
         "aspect1 = aspect(_aspect_impl, attr_aspects=['deps'])",
         "aspect2 = aspect(_aspect_impl, attr_aspects=['extra_deps'])",
         "def _rule_impl(ctx):",
-        "  return struct()",
+        "  return []",
         "injector1 = rule(_rule_impl, attrs = { 'deps' : attr.label_list(aspects = [aspect1]) })",
         "null_rule = rule(_rule_impl, attrs = { 'deps' : attr.label_list() })",
         "injector2 = rule(",
@@ -664,17 +664,16 @@
         "x/extension.bzl",
         "def _aspect_impl(target, ctx):",
         "  ctx.actions.do_nothing(mnemonic='Mnemonic')",
-        "  return struct()",
+        "  return []",
         "aspect1 = aspect(_aspect_impl, attr_aspects=['deps'], attrs =",
         "    {'param': attr.string(values = ['a', 'b'])})",
         "aspect2 = aspect(_aspect_impl, attr_aspects=['deps'])",
         "def _rule_impl(ctx):",
-        "  return struct()",
+        "  return []",
         "injector1 = rule(_rule_impl, attrs =",
         "    { 'deps' : attr.label_list(aspects = [aspect1]), 'param' : attr.string() })",
         "injector2 = rule(_rule_impl, attrs = { 'deps' : attr.label_list(aspects = [aspect2]) })",
-        "null_rule = rule(_rule_impl, attrs = { 'deps' : attr.label_list() })"
-    );
+        "null_rule = rule(_rule_impl, attrs = { 'deps' : attr.label_list() })");
 
     scratch.file(
         "pkg1/BUILD",
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
index bfc6810..4a61ad2 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
@@ -1200,18 +1200,18 @@
         "x/extension.bzl",
         "def _aspect1_impl(target, ctx):",
         "  ctx.actions.do_nothing(mnemonic='Mnemonic')",
-        "  return struct()",
+        "  return []",
         "aspect1 = aspect(_aspect1_impl, attr_aspects=['deps'])",
         "",
         "def _injecting_rule_impl(ctx):",
-        "  return struct()",
+        "  return []",
         "injecting_rule = rule(_injecting_rule_impl, ",
         "    attrs = { 'deps' : attr.label_list(aspects = [aspect1]) })",
         "",
         "def _action_rule_impl(ctx):",
         "  out = ctx.actions.declare_file(ctx.label.name)",
         "  ctx.actions.run_shell(outputs = [out], command = 'dontcare', mnemonic='Mnemonic')",
-        "  return struct()",
+        "  return []",
         "action_rule = rule(_action_rule_impl, attrs = { 'deps' : attr.label_list() })");
 
     scratch.file(
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java b/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java
index 1e179b2..c87b315 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java
@@ -213,9 +213,10 @@
         "plain(name = 'c')",
         "plain(name = 'aspectdep', aspect_deps = ['a'])");
 
-    scratch.file("x/x.bzl",
+    scratch.file(
+        "x/x.bzl",
         "def _impl(ctx):",
-        "    return struct()",
+        "    return []",
         "",
         "rule_aspect = aspect(",
         "    implementation = _impl,",
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java
index e6e6e12..ce33de9 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java
@@ -22,9 +22,13 @@
 import com.google.common.collect.ListMultimap;
 import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
 import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.packages.Provider;
+import com.google.devtools.build.lib.packages.SkylarkProvider;
+import com.google.devtools.build.lib.packages.StructImpl;
 import com.google.devtools.build.lib.packages.util.BazelMockAndroidSupport;
 import java.util.List;
 import java.util.Map;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -33,6 +37,20 @@
 @RunWith(JUnit4.class)
 public class StarlarkAttrTransitionProviderTest extends BuildViewTestCase {
 
+  @Before
+  public void setupMyInfo() throws Exception {
+    scratch.file("myinfo/myinfo.bzl", "MyInfo = provider()");
+
+    scratch.file("myinfo/BUILD");
+  }
+
+  private StructImpl getMyInfoFromTarget(ConfiguredTarget configuredTarget) throws Exception {
+    Provider.Key key =
+        new SkylarkProvider.SkylarkKey(
+            Label.parseAbsolute("//myinfo:myinfo.bzl", ImmutableMap.of()), "MyInfo");
+    return (StructImpl) configuredTarget.get(key);
+  }
+
   private void writeWhitelistFile() throws Exception {
     scratch.file(
         "tools/whitelists/function_transition_whitelist/BUILD",
@@ -50,6 +68,7 @@
     getAnalysisMock().ccSupport().setupCcToolchainConfigForCpu(mockToolsConfig, "armeabi-v7a");
     scratch.file(
         "test/skylark/my_rule.bzl",
+        "load('//myinfo:myinfo.bzl', 'MyInfo')",
         "def transition_func(settings, attr):",
         "  return {",
         "      't0': {'//command_line_option:cpu': 'k8'},",
@@ -58,7 +77,7 @@
         "my_transition = transition(implementation = transition_func, inputs = [],",
         "  outputs = ['//command_line_option:cpu'])",
         "def impl(ctx): ",
-        "  return struct(",
+        "  return MyInfo(",
         "    split_attr_deps = ctx.split_attr.deps,",
         "    split_attr_dep = ctx.split_attr.dep,",
         "    k8_deps = ctx.split_attr.deps.get('k8', None),",
@@ -119,6 +138,7 @@
     getAnalysisMock().ccSupport().setupCcToolchainConfigForCpu(mockToolsConfig, "armeabi-v7a");
     scratch.file(
         "test/not_whitelisted/my_rule.bzl",
+        "load('//myinfo:myinfo.bzl', 'MyInfo')",
         "def transition_func(settings, attr):",
         "  return {",
         "      't0': {'//command_line_option:cpu': 'k8'},",
@@ -127,7 +147,7 @@
         "my_transition = transition(implementation = transition_func, inputs = [],",
         "  outputs = ['//command_line_option:cpu'])",
         "def impl(ctx): ",
-        "  return struct(",
+        "  return MyInfo(",
         "    split_attr_deps = ctx.split_attr.deps,",
         "    split_attr_dep = ctx.split_attr.dep,",
         "    k8_deps = ctx.split_attr.deps.get('k8', None),",
@@ -161,7 +181,8 @@
     // }
     @SuppressWarnings("unchecked")
     Map<String, List<ConfiguredTarget>> splitDeps =
-        (Map<String, List<ConfiguredTarget>>) target.get("split_attr_deps");
+        (Map<String, List<ConfiguredTarget>>)
+            getMyInfoFromTarget(target).getValue("split_attr_deps");
     assertThat(splitDeps).containsKey("k8");
     assertThat(splitDeps).containsKey("armeabi-v7a");
     assertThat(splitDeps.get("k8")).hasSize(2);
@@ -182,7 +203,7 @@
     // }
     @SuppressWarnings("unchecked")
     Map<String, ConfiguredTarget> splitDep =
-        (Map<String, ConfiguredTarget>) target.get("split_attr_dep");
+        (Map<String, ConfiguredTarget>) getMyInfoFromTarget(target).getValue("split_attr_dep");
     assertThat(splitDep).containsKey("k8");
     assertThat(splitDep).containsKey("armeabi-v7a");
     assertThat(getConfiguration(splitDep.get("k8")).getCpu()).isEqualTo("k8");
@@ -193,7 +214,8 @@
     // The regular ctx.attr.deps should be a single list with all the branches of the split merged
     // together (i.e. for aspects).
     @SuppressWarnings("unchecked")
-    List<ConfiguredTarget> attrDeps = (List<ConfiguredTarget>) target.get("attr_deps");
+    List<ConfiguredTarget> attrDeps =
+        (List<ConfiguredTarget>) getMyInfoFromTarget(target).getValue("attr_deps");
     assertThat(attrDeps).hasSize(4);
     ListMultimap<String, Object> attrDepsMap = ArrayListMultimap.create();
     for (ConfiguredTarget ct : attrDeps) {
@@ -207,7 +229,8 @@
     // Check that even though my_rule.dep is defined as a single label, ctx.attr.dep is still a list
     // with multiple ConfiguredTarget objects because of the two different CPUs.
     @SuppressWarnings("unchecked")
-    List<ConfiguredTarget> attrDep = (List<ConfiguredTarget>) target.get("attr_dep");
+    List<ConfiguredTarget> attrDep =
+        (List<ConfiguredTarget>) getMyInfoFromTarget(target).getValue("attr_dep");
     assertThat(attrDep).hasSize(2);
     ListMultimap<String, Object> attrDepMap = ArrayListMultimap.create();
     for (ConfiguredTarget ct : attrDep) {
@@ -220,7 +243,8 @@
   private void testSplitTransitionCheckK8Deps(ConfiguredTarget target) throws Exception {
     // Check that the deps were correctly accessed from within Skylark.
     @SuppressWarnings("unchecked")
-    List<ConfiguredTarget> k8Deps = (List<ConfiguredTarget>) target.get("k8_deps");
+    List<ConfiguredTarget> k8Deps =
+        (List<ConfiguredTarget>) getMyInfoFromTarget(target).getValue("k8_deps");
     assertThat(k8Deps).hasSize(2);
     assertThat(getConfiguration(k8Deps.get(0)).getCpu()).isEqualTo("k8");
     assertThat(getConfiguration(k8Deps.get(1)).getCpu()).isEqualTo("k8");
@@ -232,6 +256,7 @@
 
     scratch.file(
         "test/skylark/my_rule.bzl",
+        "load('//myinfo:myinfo.bzl', 'MyInfo')",
         "def transition_func(settings, attr):",
         "  transitions = {}",
         "  for cpu in settings['//command_line_option:fat_apk_cpu']:",
@@ -243,7 +268,7 @@
         "  inputs = ['//command_line_option:fat_apk_cpu'],",
         "  outputs = ['//command_line_option:cpu'])",
         "def impl(ctx): ",
-        "  return struct(split_attr_dep = ctx.split_attr.dep)",
+        "  return MyInfo(split_attr_dep = ctx.split_attr.dep)",
         "my_rule = rule(",
         "  implementation = impl,",
         "  attrs = {",
@@ -275,7 +300,7 @@
 
     @SuppressWarnings("unchecked")
     Map<String, ConfiguredTarget> splitDep =
-        (Map<String, ConfiguredTarget>) target.get("split_attr_dep");
+        (Map<String, ConfiguredTarget>) getMyInfoFromTarget(target).getValue("split_attr_dep");
     assertThat(splitDep).containsKey("k8");
     assertThat(splitDep).containsKey("armeabi-v7a");
     assertThat(getConfiguration(splitDep.get("k8")).getCpu()).isEqualTo("k8");
@@ -288,6 +313,7 @@
 
     scratch.file(
         "test/skylark/my_rule.bzl",
+        "load('//myinfo:myinfo.bzl', 'MyInfo')",
         "def transition_func(settings, attr):",
         "  return {",
         "    '//command_line_option:cpu': 'armeabi-v7a',",
@@ -299,7 +325,7 @@
         "            '//command_line_option:dynamic_mode',",
         "            '//command_line_option:crosstool_top'])",
         "def impl(ctx): ",
-        "  return struct(split_attr_dep = ctx.split_attr.dep)",
+        "  return MyInfo(split_attr_dep = ctx.split_attr.dep)",
         "my_rule = rule(",
         "  implementation = impl,",
         "  attrs = {",
@@ -325,7 +351,7 @@
 
     @SuppressWarnings("unchecked")
     Map<String, ConfiguredTarget> splitDep =
-        (Map<String, ConfiguredTarget>) target.get("split_attr_dep");
+        (Map<String, ConfiguredTarget>) getMyInfoFromTarget(target).getValue("split_attr_dep");
     assertThat(splitDep).containsKey("armeabi-v7a");
     assertThat(getConfiguration(splitDep.get("armeabi-v7a")).getCpu()).isEqualTo("armeabi-v7a");
   }
@@ -726,6 +752,7 @@
   private void writeRulesWithAttrTransitionBzl() throws Exception {
     scratch.file(
         "test/skylark/rules.bzl",
+        "load('//myinfo:myinfo.bzl', 'MyInfo')",
         "load('//test/skylark:build_settings.bzl', 'BuildSettingInfo')",
         "def _transition_impl(settings, attr):",
         "  return {'//test/skylark:the-answer': 42}",
@@ -735,7 +762,7 @@
         "  outputs = ['//test/skylark:the-answer']",
         ")",
         "def _rule_impl(ctx):",
-        "  return struct(dep = ctx.attr.dep)",
+        "  return MyInfo(dep = ctx.attr.dep)",
         "my_rule = rule(",
         "  implementation = _rule_impl,",
         "  attrs = {",
@@ -769,9 +796,11 @@
         "my_rule(name = 'dep')",
         "int_flag(name = 'the-answer', build_setting_default = 0)");
 
+    @SuppressWarnings("unchecked")
     ConfiguredTarget dep =
         Iterables.getOnlyElement(
-            (List<ConfiguredTarget>) getConfiguredTarget("//test/skylark:test").get("dep"));
+            (List<ConfiguredTarget>)
+                getMyInfoFromTarget(getConfiguredTarget("//test/skylark:test")).getValue("dep"));
     assertThat(
             getConfiguration(dep)
                 .getOptions()
@@ -804,7 +833,10 @@
                 .get(Label.parseAbsoluteUnchecked("//test/skylark:the-answer")))
         .isEqualTo(7);
 
-    ConfiguredTarget dep = Iterables.getOnlyElement((List<ConfiguredTarget>) test.get("dep"));
+    @SuppressWarnings("unchecked")
+    ConfiguredTarget dep =
+        Iterables.getOnlyElement(
+            (List<ConfiguredTarget>) getMyInfoFromTarget(test).getValue("dep"));
     assertThat(
             getConfiguration(dep)
                 .getOptions()
@@ -821,6 +853,7 @@
     writeBuildSettingsBzl();
     scratch.file(
         "test/skylark/rules.bzl",
+        "load('//myinfo:myinfo.bzl', 'MyInfo')",
         "load('//test/skylark:build_settings.bzl', 'BuildSettingInfo')",
         "def _transition_impl(settings, attr):",
         "  return {'//test/skylark:the-answer': 'What do you get if you multiply six by nine?'}",
@@ -830,7 +863,7 @@
         "  outputs = ['//test/skylark:the-answer']",
         ")",
         "def _rule_impl(ctx):",
-        "  return struct(dep = ctx.attr.dep)",
+        "  return MyInfo(dep = ctx.attr.dep)",
         "my_rule = rule(",
         "  implementation = _rule_impl,",
         "  attrs = {",