aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax/Type.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax/Type.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Type.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Type.java b/src/main/java/com/google/devtools/build/lib/syntax/Type.java
index e2cc62fcbb..dbbfc79c42 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Type.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Type.java
@@ -530,11 +530,13 @@ public abstract class Type<T> {
@Override
public List<ElemT> convert(Object x, Object what, Object context)
throws ConversionException {
- if (!(x instanceof Iterable<?>)) {
+ Iterable<?> iterable;
+ try {
+ iterable = EvalUtils.toIterableStrict(x, null);
+ } catch (EvalException ex) {
throw new ConversionException(this, x, what);
}
int index = 0;
- Iterable<?> iterable = (Iterable<?>) x;
List<ElemT> result = new ArrayList<>(Iterables.size(iterable));
ListConversionContext conversionContext = new ListConversionContext(what);
for (Object elem : iterable) {