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 8b9a60e..3d9729c 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,8 +51,7 @@
 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.SkylarkList;
-import com.google.devtools.build.lib.syntax.SkylarkList.Tuple;
+import com.google.devtools.build.lib.syntax.SkylarkDict;
 import com.google.devtools.build.lib.util.OS;
 import com.google.devtools.build.lib.util.RegexFilter;
 import com.google.devtools.build.lib.vfs.Path;
@@ -81,7 +80,6 @@
 import java.util.Set;
 import java.util.TreeMap;
 import java.util.function.Supplier;
-import java.util.stream.Collectors;
 import javax.annotation.Nullable;
 
 /**
@@ -333,11 +331,9 @@
     public static class StarlarkAssignmentConverter extends Converters.AssignmentConverter
         implements StarlarkConverter<List<Map.Entry<String, String>>, Map.Entry<String, String>> {
       @Override
-      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()));
+      public SkylarkDict<String, String> convertToStarlark(
+          List<Map.Entry<String, String>> entries) {
+        return SkylarkDict.copyOf(null, ImmutableMap.copyOf(entries));
       }
     }
 
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 fb6e1e7..03ef28f 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):",
-        "  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'}",
+        "  if settings['//command_line_option:allow_multiple']['APRIL'] == '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,17 +1010,13 @@
     scratch.file(
         "test/transitions.bzl",
         "def _impl(settings, attr):",
-        "  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':",
+        "  if settings['//command_line_option:define']['APRIL'] == 'SHOWERS' and "
+            + "settings['//command_line_option:define']['MAY'] == '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'],",
