It turned out I only ever called in one place, and I'm about to change
that call site to do things differently anyway.
if (list == null)
throw new Mal.Error.BAD_PARAMS(
"%s: expected final argument to be a list", name());
- var fnargs = list.as_glib_list();
+ var fnargs = new GLib.List<Mal.Val>();
+ for (var iter = list.iter(); iter.nonempty(); iter.step())
+ fnargs.append(iter.deref());
for (unowned GLib.List<Mal.Val> link = lastlink.prev;
link != args.vs; link = link.prev)
fnargs.prepend(link.data);
// make that easy, Mal.Nil also derives from Mal.Listlike.
abstract class Mal.Listlike : Mal.ValWithMetadata {
public abstract Mal.Iterator iter();
- public GLib.List<Mal.Val> as_glib_list() {
- var newlist = new GLib.List<Mal.Val>();
- for (var it = iter(); it.nonempty(); it.step())
- newlist.append(it.deref());
- return newlist;
- }
}
abstract class Mal.Iterator : GLib.Object {