diff options
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.java | 6 |
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) { |