aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Laurent Le Brun <laurentlb@google.com>2015-10-15 23:02:12 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2015-10-16 07:40:28 +0000
commit99f831eb45d2ca71ff7969f1258562fb0455f51b (patch)
tree61e985bb2f999d7f6f92b964d643b2e390d1cb91 /src/main
parent6630426fb6b2380a8bf78ca77b7f42606b33702c (diff)
When loading a Skylark list or tuple, preserve the type in the BUILD file.
-- MOS_MIGRATED_REVID=105552023
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java
index d2899123c3..f79b12983b 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java
@@ -754,9 +754,12 @@ public abstract class SkylarkType implements Serializable {
* Converts object from a Skylark-compatible wrapper type to its original type.
*/
public static Object convertFromSkylark(Object value) {
- if (value instanceof SkylarkList) {
- return new ArrayList<>(((SkylarkList) value).getList());
+ if (value instanceof MutableList) {
+ return new ArrayList<>(((MutableList) value).getList());
+ } else if (value instanceof Tuple) {
+ return ((Tuple) value).getImmutableList();
+ } else {
+ return value;
}
- return value;
}
}