Allow void return statements

This commit is contained in:
2021-01-02 19:33:19 -07:00
parent ede1d63d9c
commit d2ebe20f79

View File

@@ -220,8 +220,9 @@ class SpecialForms {
}; };
map["return"] = (wholeExp:ReaderExp, args:Array<ReaderExp>, k:KissState) -> { map["return"] = (wholeExp:ReaderExp, args:Array<ReaderExp>, k:KissState) -> {
wholeExp.checkNumArgs(1, 1, '(return [value])'); wholeExp.checkNumArgs(0, 1, '(return [?value])');
EReturn(k.convert(args[0])).withMacroPosOf(wholeExp); var returnExpr = if (args.length == 1) k.convert(args[0]) else null;
EReturn(returnExpr).withMacroPosOf(wholeExp);
}; };
map["break"] = (wholeExp:ReaderExp, args:Array<ReaderExp>, k:KissState) -> { map["break"] = (wholeExp:ReaderExp, args:Array<ReaderExp>, k:KissState) -> {