From a043f552ddca8d890b14bcddf555472ef69e9014 Mon Sep 17 00:00:00 2001 From: mryouse Date: Fri, 26 May 2023 21:04:49 +0000 Subject: bytecode compilation of map() --- chunk.d | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'chunk.d') diff --git a/chunk.d b/chunk.d index 63d5bae..18bf12d 100644 --- a/chunk.d +++ b/chunk.d @@ -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, -- cgit v1.2.3