From b445717b44940c9b950b97a4362c1acb7d4def26 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sat, 26 Jun 2021 13:03:31 -0600 Subject: [PATCH] fix error when (defmethod) is used in function body --- src/kiss/SpecialForms.hx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/kiss/SpecialForms.hx b/src/kiss/SpecialForms.hx index 67e3f5f..a2b0124 100644 --- a/src/kiss/SpecialForms.hx +++ b/src/kiss/SpecialForms.hx @@ -23,7 +23,15 @@ class SpecialForms { map["begin"] = (wholeExp:ReaderExp, args:Array, k:KissState) -> { // Sometimes empty blocks are useful, so a checkNumArgs() seems unnecessary here for now. - EBlock([for (bodyExp in args) k.convert(bodyExp)]).withMacroPosOf(wholeExp); + // blocks can contain field forms that don't return an expression. These can't be included in blocks + var exprs = []; + for (bodyExp in args) { + var expr = k.convert(bodyExp); + if (expr != null) { + exprs.push(expr); + } + } + EBlock(exprs).withMacroPosOf(wholeExp); }; function arrayAccess(wholeExp:ReaderExp, args:Array, k:KissState) {