diff --git a/src/main/scala/li/cil/oc/server/driver/Registry.scala b/src/main/scala/li/cil/oc/server/driver/Registry.scala index 31bfaefe9..53fa7f89a 100644 --- a/src/main/scala/li/cil/oc/server/driver/Registry.scala +++ b/src/main/scala/li/cil/oc/server/driver/Registry.scala @@ -102,6 +102,7 @@ private[oc] object Registry extends api.detail.DriverAPI { case arg: Array[_] => convertList(arg, arg.zipWithIndex.iterator, memo) case arg: Product => convertList(arg, arg.productIterator.zipWithIndex, memo) case arg: Seq[_] => convertList(arg, arg.zipWithIndex.iterator, memo) + case arg: java.lang.Iterable[_] => convertList(arg, arg.zipWithIndex.iterator, memo) case arg: Map[_, _] => convertMap(arg, arg, memo) case arg: mutable.Map[_, _] => convertMap(arg, arg.toMap, memo) @@ -117,6 +118,11 @@ private[oc] object Registry extends api.detail.DriverAPI { memo += arg -> null null } + else if (converted.size == 1 && converted.containsKey("oc:flatten")) { + val value = converted.get("oc:flatten") + memo += arg -> value // Update memoization map. + value + } else { // This is a little nasty but necessary because we need to keep the // 'converted' value up-to-date for any reference created to it in