Automated rollback of commit 36f093abbfec386ef57f26ac479394f597881169.
*** Reason for rollback ***
Accidentally added some pending changes from a different client right before submission. Partial rollback to get rid of those.
*** Original change description ***
Allow *allowMultiple* options to be *set* by Starlark transitions.
Specifically helpful for --define.
Work towards #5574
RELNOTES: None.
PiperOrigin-RevId: 242759162
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/FunctionTransitionUtil.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/FunctionTransitionUtil.java
index da86316..c014b8a6 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/FunctionTransitionUtil.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/FunctionTransitionUtil.java
@@ -34,7 +34,6 @@
import com.google.devtools.build.lib.syntax.Runtime.NoneType;
import com.google.devtools.build.lib.syntax.SkylarkDict;
import com.google.devtools.build.lib.syntax.SkylarkList;
-import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.common.options.OptionDefinition;
import com.google.devtools.common.options.OptionsParser;
import com.google.devtools.common.options.OptionsParsingException;
@@ -179,33 +178,7 @@
Field field = optionInfo.getDefinition().getField();
FragmentOptions options = buildOptions.get(optionInfo.getOptionClass());
Object optionValue = field.get(options);
- if (optionInfo.getDefinition().allowsMultiple()) {
- List<?> optionValueList = (List<?>) optionValue;
- if (optionValueList.isEmpty()) {
- optionValue = MutableList.empty();
- } else {
- if (optionValueList.get(0) instanceof Map.Entry) {
- SkylarkDict<String, String> valueDict = SkylarkDict.withMutability(mutability);
- for (Map.Entry singleValue : (List<Map.Entry>) optionValueList) {
- valueDict.put(
- singleValue.getKey().toString(),
- singleValue.getValue().toString(),
- starlarkTransition.getLocationForErrorReporting(),
- mutability);
- }
- optionValue = valueDict;
- }
- }
- } else {
- if (optionValue instanceof Map.Entry) {
- SkylarkDict<String, String> valueDict = SkylarkDict.withMutability(mutability);
- valueDict.put(
- ((Map.Entry) optionValue).getKey().toString(),
- ((Map.Entry) optionValue).getValue().toString(),
- starlarkTransition.getLocationForErrorReporting(),
- mutability);
- }
- }
+
dict.put(optionKey, optionValue == null ? Runtime.NONE : optionValue, null, mutability);
} catch (IllegalAccessException e) {
// These exceptions should not happen, but if they do, throw a RuntimeException.