allow defmethod without body

This commit is contained in:
2021-06-23 13:20:02 -06:00
parent 8688b371a2
commit 72547648e9
2 changed files with 7 additions and 2 deletions

View File

@@ -90,7 +90,7 @@ class FieldForms {
}
static function funcOrMethod(formName:String, wholeExp:ReaderExp, args:Array<ReaderExp>, k:KissState):Field {
wholeExp.checkNumArgs(3, null, '($formName [optional :type] [name] [[argNames...]] [body...])');
wholeExp.checkNumArgs(2, null, '($formName [optional :type] [name] [[argNames...]] [body...])');
var name = Helpers.varName(formName, args[0]);
var access = fieldAccess(formName, name, args[0]);

View File

@@ -149,7 +149,12 @@ class Helpers {
};
}
var expr = k.convert(CallExp(Symbol("begin").withPos(body[0].pos), body).withPos(body[0].pos));
var expr = if (body.length == 0) {
EReturn(null).withMacroPosOf(if (name != null) name else argList);
} else {
k.convert(CallExp(Symbol("begin").withPos(body[0].pos), body).withPos(body[0].pos));
}
if (returnsValue) {
expr = EReturn(expr).withMacroPosOf(body[-1]);
}