diff options
Diffstat (limited to 'chunk.d')
| -rw-r--r-- | chunk.d | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -126,6 +126,9 @@ class List : Seq { } override Seq rest() { + if (this.inner.length == 0) { + return new List(0); + } List ret = new List(to!int(this.inner.length) - 1); for (int i = 1; i < this.inner.length; i++) { ret.addItemAtIndex(this.inner[i], i - 1); @@ -157,7 +160,11 @@ class List : Seq { } override string toString() { - return format("list ('%s' + %d)", printableValue(this.inner[0]), this.inner.length - 1); + if (this.inner.length == 0) { + return "nil"; + } else { + return format("list ('%s' + %d)", printableValue(this.inner[0]), this.inner.length - 1); + } } } @@ -185,6 +192,7 @@ enum OpCode { OP_JUMP, OP_JUMP_IF_FALSE, OP_JUMP_IF_TRUE, + OP_JUMP_TO, OP_IS_NIL, OP_DUPLICATE, |
