allow defmethod without body
This commit is contained in:
@@ -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]);
|
||||
|
@@ -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]);
|
||||
}
|
||||
|
Reference in New Issue
Block a user