Make --define of type list of tuple pairs in starlark instead of a map.

PiperOrigin-RevId: 243359182
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index cbc7447..266e075 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -51,7 +51,8 @@
 import com.google.devtools.build.lib.skylarkbuildapi.BuildConfigurationApi;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkInterfaceUtils;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
-import com.google.devtools.build.lib.syntax.SkylarkDict;
+import com.google.devtools.build.lib.syntax.SkylarkList;
+import com.google.devtools.build.lib.syntax.SkylarkList.Tuple;
 import com.google.devtools.build.lib.util.OS;
 import com.google.devtools.build.lib.util.RegexFilter;
 import com.google.devtools.build.lib.vfs.Path;
@@ -80,6 +81,7 @@
 import java.util.Set;
 import java.util.TreeMap;
 import java.util.function.Supplier;
+import java.util.stream.Collectors;
 import javax.annotation.Nullable;
 
 /**
@@ -331,9 +333,11 @@
     public static class StarlarkAssignmentConverter extends Converters.AssignmentConverter
         implements StarlarkConverter<List<Map.Entry<String, String>>, Map.Entry<String, String>> {
       @Override
-      public SkylarkDict<String, String> convertToStarlark(
-          List<Map.Entry<String, String>> entries) {
-        return SkylarkDict.copyOf(null, ImmutableMap.copyOf(entries));
+      public SkylarkList<Tuple<String>> convertToStarlark(List<Map.Entry<String, String>> entries) {
+        return SkylarkList.createImmutable(
+            entries.stream()
+                .map(e -> Tuple.of(e.getKey(), e.getValue()))
+                .collect(Collectors.toList()));
       }
     }
 
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java
index 03ef28f..fb6e1e7 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java
@@ -970,14 +970,14 @@
     scratch.file(
         "test/transitions.bzl",
         "def _impl(settings, attr):",
-        "  if settings['//command_line_option:allow_multiple']['APRIL'] == 'FOOLS':",
-        "    return {",
-        "      '//command_line_option:foo': 'post-transition'",
-        "    }",
+        "  april_value = None",
+        "  for value in settings['//command_line_option:allow_multiple']:",
+        "    if value[0] == 'APRIL':",
+        "      april_value = value[1]",
+        "  if april_value == 'FOOLS':",
+        "    return {'//command_line_option:foo': 'post-transition'}",
         "  else:",
-        "    return {",
-        "      '//command_line_option:foo': ''",
-        "    }",
+        "    return {'//command_line_option:foo': ''}",
         "my_transition = transition(",
         "  implementation = _impl,",
         "  inputs = ['//command_line_option:allow_multiple'],",
@@ -1010,13 +1010,17 @@
     scratch.file(
         "test/transitions.bzl",
         "def _impl(settings, attr):",
-        "  if settings['//command_line_option:define']['APRIL'] == 'SHOWERS' and "
-            + "settings['//command_line_option:define']['MAY'] == 'FLOWERS':",
+        "  april_value = None",
+        "  may_value = None",
+        "  for value in settings['//command_line_option:define']:",
+        "    if value[0] == 'APRIL':",
+        "      april_value = value[1]",
+        "    if value[0] == 'MAY':",
+        "      may_value = value[1]",
+        "  if april_value == 'SHOWERS' and may_value == 'FLOWERS':",
         "    return {'//command_line_option:foo': 'post-transition'}",
         "  else:",
-        "    return {",
-        "      '//command_line_option:foo': ''",
-        "    }",
+        "    return {'//command_line_option:foo': ''}",
         "my_transition = transition(",
         "  implementation = _impl,",
         "  inputs = ['//command_line_option:define'],",