diff --git a/kiss/src/kiss/FieldForms.hx b/kiss/src/kiss/FieldForms.hx index 11b4d703..e8c51dfa 100644 --- a/kiss/src/kiss/FieldForms.hx +++ b/kiss/src/kiss/FieldForms.hx @@ -90,7 +90,7 @@ class FieldForms { } static function funcOrMethod(formName:String, wholeExp:ReaderExp, args:Array, 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]); diff --git a/kiss/src/kiss/Helpers.hx b/kiss/src/kiss/Helpers.hx index 604bae09..99237503 100644 --- a/kiss/src/kiss/Helpers.hx +++ b/kiss/src/kiss/Helpers.hx @@ -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]); } diff --git a/projects/asciilib2/src/asciilib/backends/flixel/FlxAssetsBackend.kiss b/projects/asciilib2/src/asciilib/backends/flixel/FlxAssetsBackend.kiss index b7e9a529..afbce59d 100644 --- a/projects/asciilib2/src/asciilib/backends/flixel/FlxAssetsBackend.kiss +++ b/projects/asciilib2/src/asciilib/backends/flixel/FlxAssetsBackend.kiss @@ -1,3 +1,3 @@ -(defmethod new [] 0) +(defnew []) (defmethod loadText [filePath] (Assets.getText filePath)) \ No newline at end of file diff --git a/projects/asciilib2/src/asciilib/backends/test/TestAssetsBackend.kiss b/projects/asciilib2/src/asciilib/backends/test/TestAssetsBackend.kiss index 89627776..09974af5 100644 --- a/projects/asciilib2/src/asciilib/backends/test/TestAssetsBackend.kiss +++ b/projects/asciilib2/src/asciilib/backends/test/TestAssetsBackend.kiss @@ -1,3 +1,3 @@ -(defmethod new [] 0) +(defnew []) (defmethod loadText [filePath] (File.getContent filePath)) \ No newline at end of file diff --git a/projects/asciilib2/src/asciilib/backends/test/TestGraphicsBackend.kiss b/projects/asciilib2/src/asciilib/backends/test/TestGraphicsBackend.kiss index 91ea88e4..64c700c5 100644 --- a/projects/asciilib2/src/asciilib/backends/test/TestGraphicsBackend.kiss +++ b/projects/asciilib2/src/asciilib/backends/test/TestGraphicsBackend.kiss @@ -2,7 +2,7 @@ (defprop &mut :Int letterHeight 0) (defprop &mut :Int drawCalled 0) -(defmethod new [] 0) +(defnew []) (defmethod :Void initialize [:String title :Int width :Int height :Int _letterWidth :Int _letterHeight] (set letterWidth _letterWidth) diff --git a/projects/flixel-ascii-game/source/AsciiGameLogic.kiss b/projects/flixel-ascii-game/source/AsciiGameLogic.kiss index f6f90c5f..d2341b02 100644 --- a/projects/flixel-ascii-game/source/AsciiGameLogic.kiss +++ b/projects/flixel-ascii-game/source/AsciiGameLogic.kiss @@ -1,4 +1,4 @@ -(defmethod new [] 0) +(defnew []) (defmethod :Void initialize [:Assets assets] (assets.loadSurface "laptop" AssetPaths.laptop__srf))